Expressoes Regulares

Expressões regulares são expressões que representam certo padrão para uma palavra ou frase.

Lista dos símbolos mais comuns em expressões regulares

[] -> lista -> permite um caractere dentro daqueles que estão no colchetes. Ex: [axc]: regra só válido caso a entrada seja um único caractere a, x ou c.

() -> grupo -> permite uma determinada sequencia seja ditada como um grupo. Ex: (ab) valida a string caso ela seja a palavra ab

| -> escolha -> permite oferecer opções para uma determina expressão regular. Ex: a | b onde a string é válida caso ela seja composta de um único a ou b

Estes símbolos podem ser combinados entre si e com quantificadores

+ -> um ou mais -> declara que um ou mais daquela expressão é válida. Ex: a+ valida a string caso ela seja formada por um ou mais caracteres a

-> zero ou mais -> declara que zero ou mais daquela expressão é válida. Ex: a* valida a string caso ela seja formada por zero (vazia nesse caso) ou mais caracteres a

? -> opcional (zero ou um) -> declara que uma expressão é válida caso ela não apareça ou apareça uma única vez. Ex: b? valida a string caso ela seja composta apenas de um único caractere b ou seja vazia

Há outra infinidade de símbolos e expressões, mas as citadas são as expressões mais comuns e usadas não só pelas linguagens de programação como também por diversas representações de padrões textuais

Exemplos mais substanciais:

[0-9]+-[0-9]+: esta expressão regular é usada para uma string onde há dois conjuntos de números, os quais são separados por um -. ALguns exemplos são: 3644-890000000. Uma expressão um pouco diferente que pode ser utilizada para telefone é: [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] que obriga a validar quatro dígitos antes e depois do -. Para a string ficar mais complexa poderia-se adicionar a parte do DDD e mesmo usar expressões regulares que determinam que tal padrão aparece n vezes, o que existe em diversas bibliotecas que lidam com expressões regulares

[a-z_0-9]+@[a-z_0-9]+(.[a-z_0-9])+: Possível expressão regular para validar e-mails. Uma observação a se ter em mente: na maioria das APIs que mexem com expressão regular o caractere . é um coringa que significa qualquer caractere.

Expressões regulares nas diversas linguagens

Javascript

var patt = new RegExp( '\\b[a-z]+[0-9]\\b', 'i' );

Links

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
http://www.regular-expressions.info/javascript.html
http://www.w3schools.com/jsref/jsref_obj_regexp.asp

C/C++

xxxx

Java

xxx
(Interface Matcher) paca java.regex

Pyhton

xxx

.Net

xxx

TCL

http://wiki.tcl.tk/989

Links

http://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know--net-6149
http://regexone.com/
http://www.regular-expressions.info/email.html
http://www.regular-expressions.info/examples.html

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.