Expressões Regulares – Substituições

Vamos brincar em substituir a frase 2 no meio de outra frase1.

Os sujeitos
Frase 1

$frase = 'abobrinha
chuchu
abacate';

A frase 1

<br />

Como ficam as substituições
Na quebra da linha:

$string = preg_replace ("/\n/", "<br />", $frase);

Resultado:

string 'abobrinha
<br />        chuchu
<br />        abacate' (length=52)

Antes da frase:

$string = preg_replace ("/^/", "<br />", $frase);

Resultado:

string '<br />abobrinha

        chuchu

        abacate' (length=48)

Depois da frase:

$string = preg_replace ("/$/", "<br />", $frase);

Resultado:

string 'abobrinha

        chuchu

        abacate<br />' (length=48)

Referências

Anúncios

Expressões Regulares

Já usei a expressão regular no post Redimencionando vídeos do Youtube.

Mas como eu uso? A função que eu estou usando no momento de chama preg_match e ela requer:

  • Espressão Regular
  • Texto
  • Variável de saída

Vamos ao lado prático:
1 – Dentro de um texto, desejo encontrar o título <h1>Exemplos práticos</h1>.

<?php
	$match = array();
	$t = "<h1>Exemplos práticos</h1>";
	preg_match('/<[H|h]1>[a-zA-ZãÃáÁàÀêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçǺª ]*<\/[H|h]1>/',$t,$match);
	// A saída será: <h1>Exemplos práticos</h1>.
	echo $match[0];
?>

Entendendo a expressao regular:

  • A barra no início e a barra no final indicam o início e fim da expressão;
  • <[H|h]1> = as tags <H1> OU <h1>;
  • [a-zA-ZãÃáÁàÀêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçǺª ] = Qualquer letra de ‘a’ à ‘z’ podendo ser minúscula ou maiúscula ou minúscula com acento ou maiúscula com acento;
  • * = várias vezes;
  • <\/[H|h]1> = as tags </H1> OU </h1>;

2 – Explicando a expressão regular do post “Redimencionando vídeos do Youtube”:

<?php
	$video = "http://www.youtube.com/watch?v=NAc83CF8Ejk";
	$conteudo = apply_filters('the_content',$video);
?>

Ao aplicar o apply_filters(), o mesmo irá mostrar o seguinte código HTML.

<p>
	<object width="480" height="270">
		<param name="movie" value="http://www.youtube.com/v/NAc83CF8Ejk?version=3"></param>
		<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
		<embed src="http://www.youtube.com/v/NAc83CF8Ejk?version=3" type="application/x-shockwave-flash" width="480" height="270" allowscriptaccess="always" allowfullscreen="true"></embed>
	</object>
</p>

Entendendo a expressão regular:

  • A barra no início e a barra no final indicam o início e fim da expressão;
  • Como estamos procurando a largura, o mesmo começa com width=””;
  • Como vimos no HTML acima, o mesmo apresenta 3 número: [0-9]{3};

Para a largura, funciona da mesma forma.