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:
Boa leitura e até logo.
Sem comentários ainda até o momento
Deixe um comentário
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>