Caracteres, metacaracteres e metaseqüências

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

A expressão regular mais simples é aquela que corresponde a uma seqüência de caracteres, como no exemplo a seguir:

var pattern:RegExp = /hello/;

Entretanto, os seguintes caracteres, conhecidos como metacaracteres , têm significado especial nas expressões regulares:

^ $ \ . * + ? ( ) [ ] { } |

Por exemplo, a expressão regular a seguir corresponde à letra A seguida por nenhuma ou mais ocorrências da letra B (o metacaractere asterisco indica essa repetição), seguida pela letra C:

/AB*C/

Para incluir um metacaractere sem seu significado especial em um padrão de expressão regular, você deve usar o caractere escape de barra invertida (\). Por exemplo, a seguinte expressão regular corresponde à letra A seguida pela letra B, seguida por um asterisco e pela letra C:

var pattern:RegExp = /AB\*C/;

Uma metaseqüência, como um metacaractere, tem um significado especial em uma expressão regular. Uma metaseqüência é composta por mais de um caractere. As seções a seguir fornecem detalhes sobre o uso de metacaracteres e metaseqüências.

Sobre metacaracteres

A tabela a seguir resume os metacaracteres que você pode usar em expressões regulares:

Metacaractere

Descrição

^ (circunflexo)

Correspondente ao início da string. Com o sinalizador m (multiline) definido, o circunflexo também corresponde ao início de uma linha (consulte Sinalizadores e propriedades). Observe que, quando utilizado no início de uma classe de caracteres, o circunflexo indica negação e não o início de uma string. Para obter mais informações, consulte Classes de caracteres.

$(sinal de dólar)

Correspondente ao fim da string. Com o conjunto de sinalizadores m (multiline), $ também corresponde à posição antes de um caractere de nova linha (\n). Para obter mais informações, consulte Sinalizadores e propriedades.

(barra invertida) \

Elimina o significado do metacaractere especial dos caracteres especiais.

Além disso, use o caractere de barra invertida se você quiser utilizar o caractere de barra em um literal de expressão regular, como em /1\/2/ (para corresponder ao caractere 1, seguido pelo caractere de barra e pelo caractere 2).

. (ponto)

Corresponde a qualquer caractere único.

Um ponto corresponde a um caractere de nova linha (\n) apenas se o sinalizador s (dotall) está definido. Para obter mais informações, consulte Sinalizadores e propriedades.

* (estrela)

Corresponde ao item anterior repetido nenhuma ou várias vezes.

Para obter mais informações, consulte Quantificadores.

+ (adição)

Corresponde ao item anterior repetido uma ou várias vezes.

Para obter mais informações, consulte Quantificadores.

? (ponto de interrogação)

Corresponde ao item anterior repetido nenhuma ou uma vezes.

Para obter mais informações, consulte Quantificadores.

( e )

Define grupos dentro de uma expressão regular. Use os grupos para:

  • Confinar o escopo do alternador |: /(a|b|c)d/

  • Definir o escopo de um quantificador: /(walla.){1,2}/

  • Em referências anteriores: Por exemplo, \1 na expressão regular a seguir corresponde àquilo que correspondeu ao primeiro grupo entre parênteses do padrão:

  • /(\w*) é repetido: \1/

Para obter mais informações, consulte Grupos.

[ e ]

Define uma classe de caracteres que define possíveis correspondências para um único caractere:

/[aeiou]/ corresponde a qualquer um dos caracteres especificados.

Nas classes de caracteres, use o hífen (-) para designar um intervalo de caracteres:

/[A-Z0-9]/ corresponde às letras maiúsculas de A a Z ou de 0 a 9.

Nas classes de caracteres, insira uma barra invertida para eliminar os caracteres ] e

-:

/[+\-]\d+/ corresponde a + ou- antes de um ou mais dígitos.

Nas classes de caracteres, outros caracteres - normalmente metacaracteres -, não tratados como caracteres normais (e não metacaracteres), sem a necessidade de usar uma barra invertida:

/[$]/£ corresponde a $ou £.

Para obter mais informações, consulte Classes de caracteres.

| (pipe)

Utilizado para alternação, para corresponder à parte do lado esquerdo ou do lado direito:

/abc|xyz/ corresponde a abc ouxyz.

Sobre metaseqüências

As metaseqüências são seqüências de caracteres que têm significado especial em um padrão de expressão regular. A tabela a seguir descreve essas metaseqüências:

Metaseqüência

Descrição

{n}

{n,}

e

{n,n}

Especifica um quantificador numérico ou intervalo de quantificador para o item anterior:

/A{27}/ corresponde ao caractereA repetido 27 vezes.

/A{3,}/ corresponde ao caractereA repetido 3 vezes.

/A{3,5}/ corresponde ao caractere A repetido de 3 a 5 vezes.

Para obter mais informações, consulte Quantificadores.

\b

Corresponde à posição entre um caractere de palavra e um diferente de palavra. Se o primeiro ou o último caractere na string for um caractere de palavra, ele também corresponderá ao início ou ao fim da string.

\B

Corresponde à posição entre dois caracteres de palavra. Também corresponde à posição entre dois caracteres diferentes de palavra.

\d

Corresponde a um dígito decimal.

\D

Corresponde a qualquer caractere diferente de dígito.

\f

Corresponde ao caractere feed de formulário.

\n

Corresponde ao caractere de nova linha.

\r

Corresponde ao caractere de retorno.

\s

Corresponde a qualquer caractere de espaço em branco (um caractere de espaço, tabulação, nova linha ou retorno).

\S

Corresponde a qualquer caractere diferente de um caractere de espaço em branco.

\t

Corresponde ao caractere de tabulação.

\unnnn

Corresponde ao caractere Unicode com o código de caractere especificado pelo número hexadecimal nn. Por exemplo, \u263a é um caractere smiley.

\v

Corresponde ao caractere feed vertical.

\w

Corresponde a um caractere de palavra (AZ–, az–, 0-9 ou_). Observe que \w não corresponde a caracteres diferentes de inglês, como é , ñ ouç .

\W

Corresponde a qualquer caractere diferente de um caractere de palavra.

\\xnn

Corresponde ao caractere com o valor ASCII especificado, como definido pelo número hexadecimal nn.