Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrique

[Resolvido] Escrevendo uma expressão regular

Recommended Posts

Galera, vou colocar aqui um artigo que fala e explica como se fazer e montar uma expressão regular, segue abaixo.

 

O que é expressão regular?

Uma expressão regular é um padrão que pode combinar vários strings de texto, usado para validações.

 

Onde e quando usar a expressão regular?

Pode ser usado em linguagens de programação que suporta ou tem a classe de expressões regulares ou que aceite de terceiros que suporta bibliotecas de expressões regulares.

 

As expressões regulares podem ser usadas para diferentes tipos de dados, sem aumentar o código com as condições do caso. Sendo que uma série de condições, pode ser omitido, com uma única linha de verificação de expressão regular.

 

Benefícios de expressão regular:

 

Apenas alguns benefícios do uso de expressões regulares.

a - O código pode ser reduzido.

b - A velocidade de codificação.

c - Fácil manutenção (não é necessário alterar os critérios de validação se as alterações, basta verificar a seqüência de expressão regular).

d - Fácil de entender (você não precisa entender a lógica do programador se em grandes declarações e demonstrações de casos).

 

Elementos de expressão regular:

 

Aqui estão os elementos básicos de caracteres de expressão regular / literais, que pode ser usado para construir grandes expressões regulares:

 

^ ----> Inicio da sequência.

$ ----> Fim da sequência.

. ----> Qualquer caractere (exceto \n "nova linha")

{...} ----> Notação explícita de quantidade.

[...] ----> Conjunto de caracteres explícita com combinação.

(...) ----> Agrupamento lógico de uma parte de uma expressão.

* ----> 0 ou mais da expressão anterior.

+ ----> 1 ou mais da expressão anterior.

? ? ----> 0 ou 1 da expressão anterior, correspondência mínima quando uma expressão pode combinar várias strings dentro de uma seqüência de pesquisa.

\ ----> Colocando antes de algumas strings citadas acima, torna-se um literal em vez de um carácter especial. Precedendo uma combinação de caracteres especiais, veja abaixo.

\w ----> corresponde a qualquer carácter de palavra, equivalente a [a-zA-Z0-9]

\W ----> corresponde a qualquer caractere que não seja palavra, equivalente a [^ a-zA-Z0-9].

\s ----> corresponde a qualquer caractere espaço em branco, equivalente a [\f\n\r\v]

\S----> encontrados quaisquer caracteres não-espaço em branco, o que equivale a [^ \f\n\r\v]

\d ----> corresponde a qualquer dígitos decimais, equivalente a [0-9]

\D----> encontrados quaisquer caracteres não dígitos, equivalente a [^ 0-9]

\a ----> um Corresponde a um sino (alarme) \ u0007.

\b ----> Corresponde a um backspace \ u0008

\t ----> Corresponde a uma tabulação \u0009.

\r ----> Corresponde a um retorno \ u000D.

\v ----> Corresponde a uma tabulação vertical \ u000B.

\f ----> Corresponde a uma alimentação de formulário \ u000C.

\n ----> Resultados de uma nova linha \ u000A.

\e ----> Resultados e um escape \ u001B

 

$number ----> substitui a última subseqüência pareados por número de grupo (número decimal).

${name} ----> substitui a última subseqüência acompanhado por um (? ) group. ) Do grupo.

$$ ----> Substitui um único "$" literal.

$& ----> Substitui uma cópia.

$` ----> Substitui todo o texto da seqüência de entrada antes do processo.

$' ----> Substitui todo o texto da seqüência de entrada após o processo.

$+ ----> Substitui último grupo capturado.

$_ ----> Substitui da cadeia de entrada.

(?(expression)yes|no) ----> Condição de verdadeiro ou falso.

 

 

Exemplo simples:

 

Vamos começar com pequeno exemplo, valores inteiros, tendo:

Quando falamos de números, ele tem sempre tem uma série fixa, ou seja, 0 a 9 e, vamos utilizar esta regra para escrever essa expressão regular em etapas.

 

a - uma expressão regular começa com "^"

b - Como estamos usando o conjunto de caracteres para ser validado, nós podemos usar [].

c - Assim, a expressão é "^ [1234567890]

d - Como a série é continua, podemos colocar "-" o que nos dá para reduzir o comprimento da expressão. Ele se torna "^ [0-9]".

e - Isto irá funcionar apenas para um dígito e para torná-lo com n dígitos, podemos usar "*", a expressão agora se torna "^ [0-9] *"

f - Para finalizar a expressão deve colocar "$", assim a expressão final se torna "^ [0-9] * $"

 

Nota: As aspas não fazem parte da expressão, eu usei-o apenas para diferenciar entre as frases.

 

Uma maneira mais genérica para escrever:

Esta é uma da maneira que você pode escrever em função das necessidades e das competências pessoais, ela poderia ser comprimida, por exemplo, a expressão acima poderia ser reduzida.

 

a - Uma expressão regular começa com "^"

b - Como estamos verificando os números, há um carácter especial para verificar dígitos "\ d"

c - e para colocarmos vários dígitos, utilizamos "*"

d - Como expressão termina com "$", a expressão final será regular "^\d*$"

 

Dígitos pode ser validado com diferentes formas de expressões regulares:

 

1 - ^[1234567890]*$ 1) ^ [1234567890] * $

2 - ^[0-9]*$ 2) ^ [0-9] * $

3 - ^\d*$ 3) ^ \ d * $

 

Qual escolher?

Cada uma das expressões acima irá funcionar da mesma forma, escolha a melhor para você, é sempre recomendável ter um menor e auto expressiva e compreensível.

 

Exemplo de excluir opções:

Há muitas situações que nos exige a excluir apenas determinada parcela ou determinados caracteres,

Ex.:

a - Pegar todas os alfanuméricos e símbolos especiais, exceto "&"

b - Pegar todos os dígitos, exceto "7"

Então não podemos preparar uma grande lista que inclui todos e excluir os caracteres/símbolos que precisam ser validados.

Ex.: "^ w \ [^&]*$" é a solução a tomar todas as alfa numérico e símbolos especiais, exceto" & ".

 

Outros exemplos:

a - O "1" não pode ser o primeiro dígito. "^[^1]\d*$" Isso vai excluir 1 como primeiro dígito.

 

b - Não pode conter "1". "^\d[^1]*$ " Isso vai excluir a 1, em qualquer lugar na seqüência.

 

Nota: Aqui ^ operador é usado não só para iniciar a seqüência, mas também usado para negar os valores.

 

A verificação on-line:

Use o link abaixo para teste on-line sua expressão

 

http://www.regexplib.com/RETester.aspx http://www.regexplib.com/RETester.aspx

 

MAIS INFORMAÇÕES:

Você pode encontrar mais informações sobre o assunto nos links abaixo:

 

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterescapes.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterescapes.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterclasses.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterclasses.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpcongroupingconstructs.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpcongroupingconstructs.asp

 

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterclasses.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconcharacterclasses.asp

 

Fonte: http://diario.eltonjose.com.br/2009/09/escrevendo-uma-expressao-regular.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.