logo

Tutorial Regex - Como escrever expressões regulares?

Uma expressão regular (regex) é uma sequência de caracteres que define um padrão de pesquisa. Veja como escrever expressões regulares:

  1. Comece entendendo os caracteres especiais usados ​​em regex, como '.' '*' '+' '?' e muito mais.
  2. Escolha uma linguagem de programação ou ferramenta que suporte regex, como Python Perl ou grep.
  3. Escreva seu padrão usando caracteres especiais e caracteres literais.
  4. Use a função ou método apropriado para procurar o padrão em uma string.

Exemplos:

  1. Para corresponder a uma sequência de caracteres literais, basta escrever esses caracteres no padrão.
  2. Para corresponder a um único caractere de um conjunto de possibilidades, use colchetes, por exemplo. [0123456789] corresponde a qualquer dígito.
  3. Para corresponder a zero ou mais ocorrências da expressão anterior, use o símbolo de asterisco (*).
  4. Para corresponder a uma ou mais ocorrências da expressão anterior, use o símbolo de mais (+).
  5. É importante observar que regex pode ser complexo e difícil de ler, por isso é recomendado usar ferramentas como testadores de regex para depurar e otimizar seus padrões.

Uma expressão regular (às vezes chamada de expressão racional) é uma sequência de caracteres que define um padrão de pesquisa principalmente para uso na correspondência de padrões com strings ou correspondência de strings, ou seja, operações semelhantes a 'localizar e substituir'. Expressões regulares são uma forma generalizada de combinar padrões com sequências de caracteres. É usado em todas as linguagens de programação como C++ Java e Python. 



O que é uma expressão regular e o que a torna tão importante?  

Regex é usado em Google Analytics na correspondência de URL no suporte a pesquisas e substituições nos editores mais populares, como Sublime Notepad++ Brackets Google Docs e Microsoft Word.

    Example :     Regular expression for an email address :  
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{25})$

A expressão regular acima pode ser usada para verificar se um determinado conjunto de caracteres é um endereço de e-mail ou não. 

Como escrever expressões regulares?

Existem certos elementos usados ​​para escrever expressões regulares, conforme mencionado abaixo:



1. Repetidores (  * + e { } )  

Esses símbolos atuam como repetidores e informam ao computador que o caractere anterior deve ser usado mais de uma vez.

2. O símbolo de asterisco (*)

Diz ao computador para corresponder ao caractere anterior (ou conjunto de caracteres) por 0 ou mais vezes (até infinito).

    Example :    The regular expression ab*c will give ac abc abbc abbbc….and so on 

3. O símbolo de mais (+)  

Diz ao computador para repetir o caractere anterior (ou conjunto de caracteres) pelo menos uma ou mais vezes (até infinito).



    Example :    The regular expression ab+c will give abc abbc  
abbbc … and so on.

4. As chaves {…}  

Ele diz ao computador para repetir o caractere anterior (ou conjunto de caracteres) tantas vezes quanto o valor dentro deste colchete.

    Example :    {2} means that the preceding character is to be repeated 2   
times {min} means the preceding character is matches min or more
times. {minmax} means that the preceding character is repeated at
least min & at most max times.

5. Curinga (.) 

O símbolo de ponto pode substituir qualquer outro símbolo, por isso é chamado de caractere curinga.

quantas cidades existem nos EUA
    Example :      
The Regular expression .* will tell the computer that any character
can be used any number of times.

6. Caractere opcional (?)  

Este símbolo informa ao computador que o caractere anterior pode ou não estar presente na string a ser correspondida.

    Example :      
We may write the format for document file as – docx?
The ‘?’ tells the computer that x may or may not be
present in the name of file format.

7. O símbolo de circunflexo ( ^ ) ( Definir posição para a partida)

O símbolo circunflexo informa ao computador que a correspondência deve começar no início da string ou linha.

    Example :    ^d{3} will match with patterns like '901' in '901-333-'.

8.  O símbolo do dólar ($)  

Diz ao computador que a correspondência deve ocorrer no final da string ou antes de n no final da linha ou string.

    Example :    -d{3}$ will match with patterns like '-333' in '-901-333'.

9. Classes de personagens  

Uma classe de caracteres corresponde a qualquer um de um conjunto de caracteres. É usado para corresponder ao elemento mais básico de um idioma, como uma letra, um dígito, um espaço, um símbolo, etc. 


é : corresponde a quaisquer caracteres de espaço em branco, como espaço e tabulação.
S : corresponde a quaisquer caracteres que não sejam espaços em branco.
d : corresponde a qualquer caractere de dígito.
D: corresponde a quaisquer caracteres que não sejam dígitos.
Em : corresponde a qualquer caractere de palavra (basicamente alfanumérico)
EM : corresponde a qualquer caractere que não seja de palavra.
b : corresponde a qualquer limite de palavra (isso incluiria espaços, traços, vírgulas, ponto e vírgula, etc.
[conjunto_de_caracteres]: Corresponde a qualquer caractere único em set_of_characters. Por padrão, a correspondência diferencia maiúsculas de minúsculas.

    Example :    [abc] will match characters ab and c in any string.

10. [^conjunto_de_caracteres] Negação:  

Corresponde a qualquer caractere único que não esteja em set_of_characters. Por padrão, a correspondência diferencia maiúsculas de minúsculas.

lobo ou raposa
    Example :    [^abc] will match any character except abc .

11. [primeiro-último] Faixa de caracteres:  

Corresponde a qualquer caractere único no intervalo, do primeiro ao último.

    Example :    [a-zA-z] will match any character from a to z or A to Z.

12. O símbolo de escape (    ) 

Se você deseja corresponder aos caracteres reais ‘+’ ‘.’ etc, adicione uma barra invertida () antes desse caractere. Isso dirá ao computador para tratar o caractere a seguir como um caractere de pesquisa e considerá-lo como um padrão correspondente.

    Example :    d+[+-x*]d+ will match patterns like '2+2'  
and '3*9' in '(2+2) * 3*9'.

13. Agrupamento de caracteres ( )  

Um conjunto de diferentes símbolos de uma expressão regular pode ser agrupado para atuar como uma única unidade e se comportar como um bloco. Para isso, você precisa colocar a expressão regular entre parênteses ().

    Example :    ([A-Z]w+) contains two different elements of the regular   
expression combined together. This expression will match any pattern
containing uppercase letter followed by any character.

14. Barra vertical (  |  )  

Corresponde a qualquer elemento separado pelo caractere de barra vertical (|).

    Example :    th(e|is|at) will match words - the this and that.

15. número 

Referência retroativa: permite que uma subexpressão previamente correspondida (expressão capturada ou colocada entre colchetes circulares) seja identificada posteriormente na mesma expressão regular. n significa que o grupo incluído no n-ésimo colchete será repetido na posição atual.

    Example :    ([a-z])1 will match ee in Geek because the character   
at second position is same as character at position 1 of the match.

16. Como (?# comentário) 

Comentário embutido: o comentário termina no primeiro parêntese de fechamento.

    Example :    bA(?#This is an inline comment)w+b

17. # [até o fim da linha] 

Comentário do modo X. O comentário começa com um # sem escape e continua até o final da linha.

    Example :    (?x)bAw+b#Matches words starting with A