Pequeno guia de Expressões Regulares
Em Programação | 04/03/2010 23:34, atualizado em 05/03/2010 00:12
Expressões regulares são um universo à parte da programação. Originárias no mundo Unix, são de extrema valia na pesquisa, substituição e remoção de palavras em textos.
Embora crípticas, possuem uma lógica toda particular em sua composição e comumente somente seus autores conseguem compreendê-las em sua inteireza, dado o alto grau de subjetividade destas estranhas expressões.
Este pequeno guia não pretende de forma alguma ser exaustivo, mas apenas apresentar alguns dos principais caracteres utilizadas na criação de expressões regulares para apoio aos programadores (e a mim) que precisam de um guia rápido para lembraremm-se daquela estrutura maluca a ser utilizada na busca de uma string qualquer.
Anatomia básica de uma expressão regular
Tabela de caracteres/estruturas especiais
Notas
- Comumente letras em maiúsculo tem o significado contrário de seus respectivos caracteres minúsculos;
- String é um texto qualquer;
- Fronteira são caracteres não alfanuméricos;
- Coincidência ou match é o ato de um conjunto de texto ser válido para uma determinada expressão regular.
| Caractere | Significado |
|---|---|
| \b | Fronteira de palavra (início ou fim de uma palavra). |
| \B | Não é uma fronteira de palavra (não início ou não fim de uma palavra). |
| ^ | Início de uma palavra ou linha ou negação quando em uma expressão agrupada (entre []). |
| $ | Fim de uma linha. |
| \w | Caracteres alfanuméricos e underline ([A-Za-z0-9_]). |
| \W | Caracteres não alfanuméricos e underline ([^A-Za-z0-9_]). |
| \d | Coincide apenas dígitos ([0-9]). |
| \D | Coincide apenas não dígitos ([^0-9]). |
| \s | Coincide qualquer caracter de espaço em branco. |
| \S | Coincide qualquer caracter que não seja de espaço em branco. |
| \A | A coincidência ocorre no primeiro caractere. |
| \Z | A coincidência ocorre no final do último caractere de uma string ou linha (antes de \n). |
| \z | A coincidência ocorre no final do último caractere de uma string, ignorando linhas. |
| \G | A coincidência ocorre a partir do ponto no qual a última coincidência terminou. |
| \t | TAB. |
| \n | Nova linha. |
| [\b] | Backspace. |
| \r | Retorno de carro. |
| \ | Quando seguido de um caractere especial das expressões regulares, realiza coincidência daquele caractere. |
| * | Coincidência dos caracteres precedidos ZERO ou mais vezes. |
| + | Coincidência dos caracteres precedidos UMA ou mais vezes. |
| {n} | Coincidência dos caracteres precedidos exatamente n vezes. |
| {n,m} | Coincidência dos caracteres precedidos entre n (número mínimo de repetições) e m (número máximo de repetições) vezes. Pode-se deixar vazios tanto n ({,m}) quanto m ({n,}), o que causa coincidência apenas com o valor indicado. |
| ? | Caracteres precedentes são opcionais. Equivale a {0,1}. |
| . | Coincide qualquer caracter. |
| [ ] | Utilizado para agrupamento de expressões. |
| [caracteres] | Coincidência de quaisquer caracteres presentes entre os colchetes. |
| [c1-c2] | Coincidência de quaisquer caracteres alfanuméricos entre c1 e c2 (em order alfabética/numérica). |
| x|y | Coincide os caracteres x ou y. |
| ( ) | Utilizado para agrupamento de caracteres. Cria um grupo não nomeado. |
Testando suas expressões regulares
Use a ferramenta abaixo para testar suas expressões regulares.
Ao infinito e além
Caso tenha alguma dúvida, curiosidade, trauma ou angústia sobre o artigo, ou apenas deseja elogiá-lo, utilize o espaço de comentários mais abaixo para entrar em contato.
Seguem abaixo alguns links interessantes:
- RegExLib.com, ótima fonte de expressões regulares para os mais diversos fins.
- Informações sobre grupos nomeados em diversas linguagens.
- The Regex Coach, excelente ferramenta de testes de expressões regulares.
- Expresso, outra excelente e completa ferramenta de testes de expressões regulares.