Usando Expressões Regulares – PHP

Usando Expressões Regulares – PHP

Olá,

Vamos ver o básico de expressões regulares utilizando preg_match e preg_replace, teremos os exemplos:

– Procura palavra em String
– Substitui um dado valor dentro da String
– Verifica se a variável possui números
– Verifica se a variável possui texto

<?
	# String
	$str = "Eu uso PHP";

	# Printando o valor atual
	print "Valor atual: $str <br>";

	# Verificando se $str contém a palavra PHP
	if( preg_match ( '/PHP/i' , $str ) )
	{
		print "$str contém a palavra [PHP] <br>";
	}

	# Substituindo PHP por PHP and PostgreSQL
    $newStr = 'PHP and PostgreSQL' ;
	$str = preg_replace( '/PHP/' , $newStr, $str);

	# Printando o novo valor de $str por $newStr
	print "Substituído por: [$str] <br>";

	# Numero/Int
	$num = 12453;

	# Se $num possui o conjunto númerico de 0 à 9
	if( preg_match( '/[0-9]/' , $num ) )
	{
		print "[$num] é numérico <br>";
	}

	# Se $str NAO possui o conjunto númerico de 0 à 9
	if(! preg_match( '/[0-9]/' , $str ) )
	{
		print "[$str] é String <br>";
	}

	# Se $num NAO possui o conjunto  de A à Z
	if(! preg_match( '/[A-Z]/' , $num ) )
	{
		print "[$num] não contém letras<br>";
	}

?>

Sintaxes:
preg_match( ‘/padrao/’ , $variavelAlvo)    – Retorna False ou True

preg_replace( ‘/padrao/’ , ‘ novoValor ‘ , $variavelAlvo)    – Retorna  o novo valor substituído

O padrão deve ser sempre passado entre ‘/ /’ .

Para definir um conjunto deve passa-lo entre [ ].
Exemplo de conjunto:
[0-9]  mesmo que 0123456789
[A-Z] de A à Z
[A-Za-z] de A à Z e de a À z  (case sensitive)

Se deseja verificar se um endereço de e-mail possui @ o padrão seria ‘/@/’  mas isso não é suficiente para validar um endereço de e-mail pois se o endereço contiver mais de um @ seria validado normalmente.

Vimos apenas o mais básico possível sobre expressões regulares, estou aprendendo também e talvez esteja sendo no PHP o que mais me atrai no momento.

Exemplo do padrão para validação de um endereço de e-mail:
“/^[^!@#$%¨&*()0-9][a-zA-Z0-9_.]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/”;

Exemplo do padrão para validação para tags HTML:
“/<[^>]+>/is”

Pois é, a coisa é complexa, uma expressão para quem nunca curtiu as aulas de matemática pode ser bem chato haha.
Então leiam se quiserem criar algo realmente útil com RegExp.

Referências:

preg_match
preg_replace

Boa leitura e até logo.

Comments

  1. Responder

    • Responder

  2. Responder

    • Responder

  3. Responder

    • Responder

  4. Responder

    • Responder

  5. By felipe

    Responder

    • Responder

  6. Responder

    • By felipe

      Responder

  7. By moises

    Responder

Perguntas duplicadas ou cujo a resposta esteja nos comentários serão ignoradas.
Comentários com códigos serão ignorados(para isso, use o pastebin.com e informe aqui o link).
Faça sua pergunta e "aguarde" ser aprovada para aparecer no blog.
Aguarde sua resposta, ela não é em tempo real, tenha paciência!

Deixe seu comentário

%d blogueiros gostam disto: