ederssouza / regex

Guia básico sobre expressões regulares.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Expressões Regulares (regex)

Expressões Regulares são padrões utilizados para selecionar combinações de caracteres em uma string.

Com elas podemos lidar com as seguintes situações:

  • Procura;
  • Substituição;
  • Validação de formatos;
  • Filtragem de informações.

Existem duas formas de declarar uma expressão regular:

  • Literal: /ab+c/ é lida quando o script é carregado e possui melhor performace;
  • Construtor do objeto RegExp: new RegExp('ab+c') é realizada em tempo de execução. Use o construtor quando souber que o padrão da expressão regular irá mudar.

Estrutura

Uma expressão regular é composta de âncoras, conjuntos de caracteres, quantificadores e flags.

/[ANCHOR] [CHARACTER SET] [QUANTIFIERS] [ANCHOR]/[FLAGS]

Como funciona?

Conhecendo os recursos

Conjunto ou classes de caracteres

Corresponde a um caracter de um conjunto específico. Existem várias classes de caracteres predefinidas. Você também pode definir seus próprios conjuntos.

Caractere Nome Descrição
[abc] character set Corresponde a qualquer caractere do conjunto.
[^abc] negated set Corresponde a qualquer caractere que não esteja no conjunto.
[a-z] range Corresponde a um caractere entre os dois caracteres especificados, no nosso caso de a até z na tabela ASCII.
[à-ü] range Corresponde a um caractere entre os dois caracteres especificados, no nosso caso de à até ü na tabela ASCII.
. dot Corresponde a qualquer caractere, exceto quebras de linha. Equivalente a [^\n\r].
[\s\S] match any Um conjunto de caracteres que pode ser usado para corresponder a qualquer caractere, incluindo quebras de linha.
\w word char Corresponde a qualquer caractere de palavra (alfanumérico e sublinhado). Equivalente a [A-Za-z0-9_].
\W not word char Corresponde a qualquer caractere que não seja um caractere de palavra (alfanumérico e sublinhado). Equivalente a [^A-Za-z0-9_].
\d digit Corresponde a qualquer caractere de dígito (0-9). Equivalente a [0-9].
\D not digit Corresponde a qualquer caractere que não seja um caractere de dígito (0-9). Equivalente a [^0-9].
\s whitespace Corresponde a qualquer caractere de espaço em branco (espaços, tabulações, quebras de linha).
\S not whitespace Corresponde a qualquer caractere que não seja um caractere de espaço em branco (espaços, tabulações, quebras de linha).

Quantificadores

Os quantificadores indicam que o token anterior deve ser correspondido um certo número de vezes. Por padrão, os quantificadores são gananciosos e corresponderão ao máximo de caracteres possível.

Caractere Nome Descrição
* star zero ou mais ocorrências, equivalente a {0,}.
+ plus uma ou mais ocorrências, equivalente a {1,}.
{m, n} quantifier de m até n ou {min, max}.
? optional zero ou uma ocorrência, equivalente a {0,1}.
? lazy Torna o quantificador anterior lento, fazendo com que ele corresponda ao mínimo de caracteres possível.
| alternation / pipe Atua como um operador OR.

Âncoras

As âncoras são únicas porque correspondem a uma posição dentro de uma string, não a um caractere.

Caractere Nome Descrição
^ beginning Corresponde ao início de uma string.
$ end Corresponde ao final de uma string.
\b word boundary Corresponde a uma posição de limite de palavra (início / fim da string).
\B not word boundary Corresponde a qualquer posição que não seja um limite de palavra. Isso corresponde a uma posição, não a um caracter.

Flags

Flags de expressão mudam como a expressão é interpretada. Flags seguem a barra de fechamento da expressão (ex./.+/igm).

Caractere Nome Descrição
g global Encontra todas as correspondências em vez de parar após achar a primeira.
i case insensitive Case sensitive (ignora maiúsc./minúsc.)
m multiline Trata caracteres de início e fim (^ e $) ao operar sobre múltiplas linhas (ou seja, corresponder o início ou fim de cada linha (delimitado por \n ou \r), e não apenas o começo ou fim de toda a string de entrada).

Grupos e referências

Os grupos permitem combinar uma sequência de tokens para operar juntos. Os grupos de captura podem ser referenciados por uma referência anterior e acessados separadamente nos resultados.

Caractere Nome Descrição
(abc) capturing group Agrupa vários tokens e cria um grupo de captura para extrair uma substring ou usar uma referência anterior.
(?:abc) non-capturing group Agrupa vários tokens sem criar um grupo de captura.
\1 numeric reference Corresponde aos resultados de um grupo de captura. Por exemplo \1 corresponde aos resultados do primeiro grupo de captura & \3 corresponde ao terceiro.

Links relacionados

Documentação auxiliar

Teste dua expressão regular

About

Guia básico sobre expressões regulares.