Classes de caracteres de expressão regular
Construções de classe de caractere
Uma classe de caractere permite que você especifique um conjunto de caracteres, entre colchetes, que pode produzir uma única correspondência de caractere. Uma classe de caractere corresponde apenas a um único caractere. Por exemplo,
gr[ae]y
corresponderá a gray
ou grey
, mas não para graay
ou graey
. A ordem dos caracteres entre parênteses não importa.Você pode usar um hífen dentro de uma classe de caractere para especificar um intervalo de caracteres. Exemplo:
[a-z]
corresponde a uma única letra minúscula entre a
e z
. Você também pode usar mais de um intervalo ou uma combinação de intervalos e caracteres únicos. Exemplo: [0-9X]
corresponde a um dígito numérico ou à letra X
. A ordem dos caracteres e dos intervalos não importa.O sinal de circunflexo após o colchete de abertura especifica os caracteres a serem excluídos de uma correspondência. Por exemplo,
[^abc]
corresponde a qualquer caractere, exceto a
, b
, ou c
.Construir | Tipo | Descrição |
|---|---|---|
[
abc ] | Simples | Correspondências a ou b ou c
|
[^abc]
| Negação | Corresponde a qualquer caractere, exceto a ou b ou c
|
[a-zA-Z]
| Intervalo | Correspondências a até z , ou A até Z (inclusive) |
[a-d[m-p]]
| Sindicato | Correspondências a até d , ou m até p
|
[a-z&&[def]]
| Interseção | Correspondências d , e , ou f
|
[a-z&&[^xq]]
| Subtração | Correspondências a até z , exceto para x e q
|
Classes de caracteres predefinidas
Classes de caracteres predefinidas são abreviações convenientes para expressões regulares usadas com frequência.
Construir | Descrição | Exemplo |
|---|---|---|
.
| Corresponde a qualquer caractere único (exceto nova linha) | .at corresponde a "cat", "hat" e também "bat" na frase "arquivos em lote" |
\d
| Corresponde a qualquer caractere de dígito (equivalente a [0-9] ) | \d corresponde a "3" em "C3PO" e a "2" em "file_2.txt" |
\D
| Corresponde a qualquer caractere sem dígitos (equivalente a [^0-9] ) | \D corresponde a "S" em "900S" e "Q" em "Q45" |
\s
| Corresponde a qualquer caractere de espaço em branco único (equivalente a [ \t\n\x0B\f\r] ) | \sbook corresponde a "livro" em "livro azul", mas nada em "caderno de anotações" |
\S
| Corresponde a qualquer caractere único que não seja um espaço em branco | \Sbook corresponde a "livro" em "caderno de anotações", mas nada a "livro azul" |
\w
| Corresponde a qualquer caractere alfanumérico, incluindo sublinhado (equivalente a [A-Za-z0-9_] ) | r\w* corresponde a "rm" e "root" |
\W
| Corresponde a qualquer caractere não alfanumérico (equivalente a [^A-Za-z0-9_] ) | \W corresponde a "&" em "stmd &", "%" em "100%" e "$" em "$HOME" |
Classes de caracteres Posix (US-ASCII)
POSEX tem um conjunto de classes de caracteres que denota determinados intervalos comuns. Elas são semelhantes às classes de colchetes e de caracteres predefinidas, exceto por levarem em consideração os parâmetros regionais (o sistema local de idioma/codificação).
Construir | Descrição |
|---|---|
\p{Lower}
| Um caractere alfabético minúsculo, [a-z]
|
\p{Upper}
| Um caractere alfabético maiúsculo, [A-Z]
|
\p{ASCII}
| Um caractere ASCII [\x00-\x7F]
|
\p{Alpha}
| Um caractere alfabético, [a-zA-z]
|
\p{Digit}
| Um dígito numérico [0-9]
|
\p{Alnum}
| Um caractere alfanumérico, [a-zA-z0-9]
|
\p{Punct}
| Um caractere de pontuação, um dos !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
|
\p{Graph}
| Um caractere visível, [\p{Alnum}\p{Punct}]
|
\p{Print}
| Um caractere para impressão, [\p{Graph}\x20]
|
\p{Blank}
| Um espaço ou uma guia [ t]
|
\p{Cntrl}
| Um caractere de controle [\x00-\x1F\x7F]
|
\p{XDigit}
| Um dígito hexadecimal, [0-9a-fA-F]
|
\p{Space}
| Um caractere de espaço em branco [ \t\n\x0B\f\r]
|