Alternação e agrupar

Alternação usa o | caractere para permitir uma escolha entre dois ou mais alternativas.Por exemplo, você pode expandir a expressão regular do título de capítulo para retornar mais do que apenas os títulos de capítulo.No entanto, não é tão simples sistema autônomo você imagina.Alternação corresponde à expressão possível maior em ambos os lados do | caractere.

Exemplo

Você pode pensar que a expressão a seguir corresponde a um capítulo ou seção seguido por um ou dois dígitos que ocorrem no início e final de uma linha:

/^Chapter|Section [1-9][0-9]{0,1}$/

Infelizmente, a expressão regular acima corresponde a qualquer a palavra Chapter no início de uma linha ou a palavra Seção e números que seguem seção no participante da linha de.Se a seqüência de caracteres de entrada for Capítulo 22, a expressão acima corresponde apenas a palavra Chapter. Se a seqüência de caracteres de entrada for seção 22, a expressão corresponde a seção 22.

Para tornar as expressões regulares mais responsiva, que você pode usar parênteses para limitar o escopo de alternação, ou seja, para certificar-se de que ele se aplica somente às duas palavras Chapter e Seção.No entanto, parênteses também são usados para criar subexpressions e possivelmente capturá-los para uso posterior, algo que é coberto na seção Referências anteriores.Adicionando parênteses nos locais apropriados da expressão regular acima, você pode fazer com que a expressão regular correspondem ao capítulo 1 ou seção 3.

A seguinte expressão regular usa parênteses para agrupar seção e capítulo para que a expressão está funcionando corretamente:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Embora essas expressões funcionarem corretamente, os parênteses capítulo|seção também causar das duas palavras correspondentes para ser capturada para uso futuro.Como há apenas um conjunto de parênteses na expressão acima, há apenas um capturados submatch.Este submatch pode ser chamado usando o $ 1 a $ 9 Propriedades de do RegExp objeto.

No exemplo acima, você simplesmente deseja usar parênteses para agrupar uma escolha entre as palavras Chapter e Seção.Para evitar que a correspondência seja salvo para uso posterior possível, coloque?: antes do padrão de expressão regular dentro dos parênteses.A seguinte modificação fornece a funcionalidade mesma sem salvar o submatch:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

Além de?: metacaracteres, dois outros metacaracteres não captura criar algo chamado Lookahead corresponde.Um lookahead positivo, o que é especificado usando? =, a correspondência com a string de Pesquisar em qualquer ponto onde começa um padrão de expressão regular correspondente entre parênteses.Um lookahead negativo, que é especificado usando?!, a correspondência com a string de Pesquisar em qualquer ponto onde começa uma seqüência de caracteres que não correspondam ao padrão de expressão regular.

Por exemplo, suponha que você tenha um documento que contém referências para o Windows 3.1, Windows 95, Windows 98 e Windows NT.Ainda mais, suponha que você precise atualizar o documento, alterando todas as referências ao Windows 95, Windows 98 e Windows NT para o Windows 2000.A expressão regular a seguir, que é um exemplo de um lookahead positivo, corresponde a Windows 95, Windows 98 e Windows NT:

/Windows(?=95 |98 |NT )/

Depois que uma correspondência for encontrada, a Pesquisar para a próxima correspondência começará imediatamente após o texto correspondente sem incluir os caracteres na look-ahead.Por exemplo, se a expressão acima corresponde Windows 98, a Pesquisar continuará após o Windows não após 98.

Consulte também

Conceitos

Referências anteriores em JScript

Outros recursos

Introdução a expressões regulares