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:
Boa leitura e até logo.
Pessoal também indico se me dão licensa, o site http://langdev.ueuo.com/ o mesmo contém video aula e um modo bem legal de ensinar expressões regulares. Só pra complementar o rico conteúdo desse post.
O site não é de minha autoria, estou apenas indicando, assim como indico esse para outros amigos.
Abraço, feliz 2010!!!
Eliseu, cara obrigado pela iniciativa de compartilhar tal informação.
Show de bola o link.
Um forte abraço.
Amigo, tudo bem ?
É um prazer visitar o seu projeto e participar mesmo que seja na leitura e feed, gosto do conteúdo e da forma que explica o post. Mas você nos deve mais publicações né, rs rs
Ehehehe eu sei cara, to devendo na praça né …
Tá muito corrido, mas esse ano vou arrumar um tempo.
abraços
Bem explicado!
Mas eu queria ver o conteudo do site http://langdev.ueuo.com/ para me aprofundar mais. Mas parece que está Off o site.
Se puder disponibilizar as vídeo-aulas de Expressões regulares agradeço.
Anderson, obrigado pelo comentário. Realmente o link fornecido por nosso amigo Eliseu é/era muito bom, não sei o que aconteceu para estar fora, talvez tenham mudado o conteúdo de local, talvez o Eliseu saiba:
http://www.eliseusb.com/
abraços
Olá amigos, fiz o upload do material na internet para disponibilizar a vocês, infelizmente tentei fazer contato com os responsáveis para notificá-los sobre isso porém não consegui, mas segue os links para baixar, abraços:
Megaupload http://www.megaupload.com/?d=FEN1COZW
Rapidshare http://rapidshare.com/files/354206239/VideoAulaRegex.rar.html
Senha: langdev.ueuo.com
Caramba Eliseu, muito obrigado meu brother…
Forte abraço,
ola
fiz o download pelo rapidshare mas na hora de descompactar pede senha e agora?
Boa pergunta, nosso amigo Eliseu que disponibilizou deve ter a senha, claro.
Vamos aguardar ele nos informar…
Até
Desculpem, mas upei somente o arquivo original do site que já possuia a senha, a mesma é: langdev.ueuo.com
Abraços
Valeu!
mto bom..:D