Escolar Documentos
Profissional Documentos
Cultura Documentos
Regulares
Apresenta as sintaxes básicas das Expressões Regulares e também a classe Regex.
Regex
No .NET a classe Regex representa uma expressão regular imutável. Esta classe contém
diversos métodos estáticos que nos permite trabalhar com expressões regulares. Para
usarmos o objeto Regex devemos importar o namespace System.Text.RegularExpressions.
Métodos Regex
Regex.IsMatch(
indica se a expressão
input, pattern)
regular encontrar a
IsMatch Regex.IsMatch(
entrada de string
input, pattern,
associada
options)
substitui código de
Regex.Unescape(
Unescape escape pelo caractere
input, pattern)
de escape
Opções de Execução
associa case-
IgnoreCase i
insensitive
modo multi-linha;
modifica o
significado de ^ e $,
assim ele executa
Multiline m
associandoo inicio e
fim,
respectivamente, de
alguma linha
somente capturas
validas são
explicitamente
ExplicitCapture n
grupos nomeados ou
numerados do
formato(?...)
permite espaço em
branco e
IgnorePatternWhitespace x
comentários no
pattern
expressões regulares
Compiled N/A seriam compilados
para um assembly
procura mover da
direita para esquerda
RightToLeft N/A
em lugar da
esquerda para direita
Framework Exemplo
Referências
Segue uma breve descrição dos caracteres especiais mais utilizados em expressão
regular.
Escape
Caractere Descrição
\b veja âncora.
\t tab \u0009
\e escape \u001B
Agrupamento
Caractere Descrição
Âncora
Caracter Descriçã
Modelo Representação Explicação
e o
associa
texto que
inicia com
início da
^ "^abc" "abcde" a sequência
linha
"abc",
embora não
"yabc".
associa
texto que
termina
fim da com a
$ "abc$" "yzabc"
linha sequência
"abc",
embora não
"abcde".
associa a
fronteira da
fronteira palavra
\b do "car\b" "car"; "tocar" "car",
caractere embora não
"carburador
".
não associa
a fronteira
da palavra
"car", mas
pode
assegurar
não
que a
fronteira
\B "car\B" "carburetor" sequência
do
ocorra no
caractere
meio da
palavra,
como
"carburador
", embora
não "tocar".
início da
\A "\Apattern" "patterns" --
string
fim da
\Z "pattern\Z" "topattern" --
string
Quantificadores
o caractere que
precede o asterisco
zero ou pode ser repetido 0
* "zo*" "z" ; "zoo"
mais vezes ou mais vezes
(equivalente a
"{0,}")
o caractere que
precede o sinal de
uma ou (+) pode ocorrer 1
+ "zo+" "zo" ; "zoo"
mais vezes ou mais vezes
(equivalente a
"{1,}")
o caractere que
precede o sinal de
zero ou "do(es) interrogação pode
? "do" ; "does"
uma vez ?" ocorrer 0 ou 1 vez
(equivalente a
"{0,1}")
o caractere que
n vezes "o" "food" precede o sinal pode
ocorrerá n vezes
a sequência "{0,}" é
pelo menos equivalente a "o*";
{n,} "o{2,}" "foooood"
n vezes a sequência "{1,}" é
equivalente a "o+"
um
caractere representa um
. "o." "oa"
simples, carecteres simples,
exceto "\n" exceto "\n" ( para
associá-lo utilize o
padrão "[\s\S] " )
um dos
caracteres
associa "a" contido
[xyz] que está "[abc]" "plain"
na palavra "plain"
dentro dos
colchetes
associa um dos
um dos
caracteres de 'a' até
caracteres
'z' em caixa baixa,
[a–z] que está "[a–z]" ---
lembre-se que
dentro dos
expressões regulares
colchetes
são case-sensitive
Alternador
uma ou
"zood" ou o caractere |
"|" (pipe) outra "(z|f)ood"
"food" (pipe)
ocorrência
representa uma
ocorrência ou
outra
Classes
Classe Descrição
Classe Caractere
[:digit:] \d
^[:digit] \D
[:space:] \s
^[:space:] \S
[:word:] \w
^[:word:] \W
Parâmetros BackReference
Caracteres Descrição
Comentário
Caractere Descrição
Praticando
É interessante criarmos uma página .aspx (ou qualquer outra hosting application que
desejar) para testarmos as expressões regulares. O código abaixo facilita bastante a
execução das sintaxes, inclusive dos métodos da classe Regex (veja Métodos Regex).
Perceba que o método IsMatch retorna um valor Booleano e é necessário informar, neste
caso, apenas o texto e a sintaxe da expressão regular (veja Métodos Regex). Para
qualquer teste que queira fazer basta colocar o pattern - sintaxe - da expressão regular e
testar. Por exemplo, "^\d+$" valida somente dígitos, isso significa que se for digitado
alguma coisa que não for número então retornará False. Abaixo segue uma lista de
algumas das validações simples que utilizamos no dia a dia.
Tipo de
Expressão
Validação
Dígito ^\d+$
^[+-]?((\d+|\d{1,3}(\.\d)+)(\,\d*)?|\,\d+)$ ^[-+]?([0-
Decimal
9]*\,[0-9]+|[0-9]+)$
Letra ^[[:alpha:]]+$
Endereço IP \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Tempo (24
^([0|1|2]\d):([0|1|2|3|4|5] \d)$
horas)
Data ^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-
(dd/mm/aaaa) 2])|31\/(0[13578]|1[02])) \/\d$
Telefone ^\(\d\)-\d-\d$
Referências
Microsoft Visual Basic .NET Programmer's Cookbook / by Matthew
MacDonald;
Sams Teach Yourself Regular Expressions in 10 Minutes / By Ben Forta;
Mastering Regular Expressions, 3rd Edition / By Jeffrey E. F. Friedl;
Beginning Regular Expressions / Andrew Watt;
Microsoft .NET Framework 2.0 Application Development Foundation / byTony
Northrup, Shawn WildermuthandBill Ryan.