Uma expressão regular é um padrão literal composto por caracteres comuns (como caracteres A a Z) e caracteres especiais (chamados Metacharacters ). Esse padrão descreve uma ou mais cordas a serem correspondidas ao procurar um corpo de texto. A expressão regular atua como um modelo para corresponder a um padrão de caracteres com a string pesquisada.
Aqui estão alguns exemplos de expressões regulares que você pode encontrar:
| Jscript | VBScript | corresponder |
|---|---|---|
| /^/[/t]*$/ | ^ /[ /t]*$ | Combine uma linha em branco. |
| // d {2}-/d {5}/ | /d {2}-/d {5} | Verifique se um número de identificação consiste em um número de 2 dígitos, um hífen e um número de 5 dígitos. |
| /<<(.*)>.*<///1>/ | <(.*)>.*</// 1> | Combine uma tag html. |
A tabela a seguir é uma lista completa de metacaracters e seu comportamento no contexto de expressões regulares:
| personagem | descrever |
|---|---|
| / | Marque o próximo personagem como um personagem especial, ou um personagem primitivo, ou uma referência para trás, ou um personagem de fuga octal. Por exemplo, 'n' corresponde ao caractere n. '/n' corresponde a um personagem de nova linha. A sequência '//' corresponde /e /(corresponde (. |
| ^ | Corresponde à posição inicial da sequência de entrada. Se a propriedade multilina do objeto regexp estiver definida, também corresponder à posição após '/n' ou '/r'. |
| $ | Corresponde à posição final da sequência de entrada. Se a propriedade multilina do objeto regexp estiver definida, $ também corresponderá à posição antes de '/n' ou '/r'. |
| * | Corresponde à subexpressão anterior zero ou várias vezes. Por exemplo, Zo* pode corresponder Z e Zoo. * é equivalente a {0,}. |
| + | Corresponde à subexpressão anterior uma vez ou mais vezes. Por exemplo, 'Zo+' pode combinar com zo e zoológico, mas não z. + é equivalente a {1,}. |
| ? | Corresponde à subexpressão anterior zero ou uma vez. Por exemplo, faça (es)? ? |
| { n } | n é um número inteiro não negativo. Combine as N vezes que são determinadas. Por exemplo, 'o {2}' não pode corresponder 'O' em Bob, mas pode combinar dois sistemas operacionais em comida. |
| { n ,} | n é um número inteiro não negativo. Combine pelo menos n vezes. Por exemplo, 'O {2,}' não pode corresponder 'o' em Bob, mas pode corresponder a todos os sistemas operacionais em Foooood. 'O {1,}' é equivalente a 'O+'. 'O {0,}' é equivalente a 'O*'. |
| { n , m } | M e N são números inteiros não negativos, onde n <= m . Combine pelo menos n vezes e corresponda a M vezes. Liu, O {1,3} corresponderá aos três primeiros sistemas operacionais em Fooooood. 'O {0,1}' é equivalente a 'O?'. Observe que não pode haver espaços entre vírgulas e dois números. |
| ? | O padrão de correspondência não é a greedoso quando o personagem é imediatamente seguido por qualquer outro caractere de restrição (*, +,?, { N }, { n ,}, { n , m }). O padrão que não é a grade corresponde o menor número possível de cordas, enquanto o padrão ganancioso padrão corresponde ao maior número possível de cordas. Por exemplo, para a corda oooo, 'O+?' |
| . | Combine qualquer caractere, exceto /n. Para corresponder a todos os caracteres, incluindo '/n', use um padrão como '[./n]'. |
| ( padrão ) | Combine o padrão e obtenha esta correspondência. As correspondências obtidas podem ser obtidas na coleção Gerated Matches, usando a coleção de envios no VBScript e usando o atributo $ 0 … $ 9 no JScript. Para combinar com os personagens entre parênteses, use '/(' ou '/)'. |
| (?: padrão ) | Padrão de correspondência, mas não obtém o resultado correspondente, ou seja, esta é uma correspondência não get e não é armazenada para uso futuro. Isso é útil ao usar ou caracteres (|) para combinar várias partes de um padrão. Por exemplo, 'indústria (?: y | ies) é uma expressão mais simples do que' indústria | indústrias '. |
| (? = padrão ) | Avançar pré-verificar, corresponda à sequência de pesquisa no início de qualquer padrão de correspondência de string. Esta é uma partida que não é de get, ou seja, a correspondência não precisa ser recuperada para uso posterior. Por exemplo, 'Windows (? = 95 | 98 | nt | 2000)' pode corresponder ao Windows no Windows 2000, mas não no Windows no Windows 3.1. A pré-verificação não consome caracteres, ou seja, depois que ocorre uma partida, a pesquisa da próxima partida começa imediatamente após a última partida, e não após os caracteres que contêm a pré-verificação. |
| (?! padrão ) | LookaHead negativo corresponde à sequência de pesquisa em qualquer ponto em que uma string não corresponda ao padrão . Esta é uma partida que não é de get, ou seja, a correspondência não precisa ser recuperada para uso posterior. Por exemplo, 'Windows (?! 95 | 98 | nt | 2000)' pode corresponder ao Windows no Windows 3.1, mas não no Windows no Windows 2000. A pré-verificação não consome caracteres, ou seja, depois que ocorre uma partida, a próxima pesquisa de partida começa imediatamente após a última partida, e não após os personagens que contêm a pré-verificação |
| x | | Corresponder x ou y . Por exemplo, 'z | comida' pode combinar com z ou comida. '(Z | f) ood' corresponde a Zood ou comida. |
| [ xyz ] | Coleção de personagens. Corresponder a qualquer caractere contido. Por exemplo, '[ABC]' pode corresponder 'a' na planície. |
| [^ xyz ] | Uma coleção de caracteres de valores negativos. Combine os personagens não incluídos. Por exemplo, '[^abc]' pode corresponder 'P' na planície. |
| [ AZ ] | Alcance de caracteres. Combine qualquer caractere no intervalo especificado. Por exemplo, '[AZ]' pode corresponder a quaisquer caracteres alfabéticos minúsculos na faixa 'a' a 'z'. |
| [^ az ] | Faixa de caracteres de valor negativo. Combine quaisquer caracteres arbitrários que não estejam dentro do intervalo especificado. Por exemplo, '[^az]' pode corresponder a quaisquer caracteres arbitrários que não estejam no intervalo 'a' a 'z'. |
| /b | Combine um limite da palavra, o que significa a posição entre a palavra e o espaço. Por exemplo, 'er/b' pode combinar 'er' em nunca, mas não 'er' no verbo. |
| /B | Combinar limites não-palavras. 'er/b' pode combinar 'er' no verbo, mas não pode combinar 'er' em nunca. |
| /c x | Corresponde aos caracteres de controle especificados por x . Por exemplo, /cm corresponde a um retorno de controle-m ou de carro. O valor de x deve ser um de AZ ou AZ. Caso contrário, trate C como um personagem original 'C'. |
| /d | Combine um caractere numérico. Equivalente a [0-9]. |
| /D | Combine um caractere não numérico. Equivalente a [^0-9]. |
| /f | Combine uma quebra de página. Equivalente a /x0c e /cl. |
| /n | Combine um personagem de nova linha. Equivalente a /x0a e /cj. |
| /r | Combine um caractere de retorno de carruagem. Equivalente a /x0d e /cm. |
| /s | Combine todos os caracteres de espaço em branco, incluindo espaços, guias, quebras de página, etc. Equivalente a [/f/n/r/t/v]. |
| /S | Combine quaisquer caracteres que não sejam do WhitaSpace. Equivalente a [^/f/n/r/t/v]. |
| /t | Combine um caractere de guia. Equivalente a /x09 e /ci. |
| /v | Combine uma guia vertical. Equivalente a /x0b e /ck. |
| /c | Combine qualquer personagem de palavra que inclua um sublinhado. Equivalente a '[a-zA-z0-9_]'. |
| /C | Combine qualquer caractere não-palavras. Equivalente a '[^a-za-z0-9_]'. |
| /x n | Match n , onde n é um valor de escape hexadecimal. O valor de escape hexadecimal deve ser o comprimento de dois números que são determinados. Por exemplo, '/x41' corresponde A. '/x041' é equivalente a '/x04' & 1. A codificação ASCII pode ser usada em expressões regulares. . |
| / num | Combine num , onde num é um número inteiro positivo. Referência à correspondência obtida. Por exemplo, '(.)/1' corresponde a dois caracteres idênticos consecutivos. |
| / n | Identifica um valor de fuga octal ou uma referência atrasada. Se pelo menos N obteve subexpressões antes / n , n é uma referência para trás. Caso contrário, se n for um número octal (0-7), n é um valor de escape octal. |
| / nm | Identifica um valor de fuga octal ou uma referência atrasada. Se pelo menos o NM obteve subexpressões forem precedidas por pelo menos NM antes / nm , NM é uma referência para trás. Se houver pelo menos N busca antes / nm , n é uma referência atrasada seguida pelo m literal. Se nenhuma das condições anteriores for satisfeita, se n e m forem números octal (0-7), então / nm corresponderá ao valor de escape octal NM . |
| / nml | Se n for um número octal (0-3), e M e L são números octal (0-7), o valor de escape octal NML é comparado. |
| /u n | Match n , onde n é um caractere unicode representado por quatro dígitos hexadecimais. Por exemplo, /U00A9 corresponde ao símbolo de direitos autorais (?). |
Após a construção de uma expressão regular, você pode avaliar como uma expressão matemática, ou seja, pode avaliar da esquerda para a direita e em uma ordem prioritária.
A tabela a seguir lista a ordem prioritária de vários operadores de expressão regular, da maior prioridade até a menor prioridade:
| Operador | descrever |
|---|---|
| / | Símbolo de fuga |
| (), (? :), (? =), [] | Aparelho e colchetes |
| *, +,?, {n}, {n,}, {n, m} | Qualificador |
| ^, $, / Anymetacharacter | Posição e ordem |
| | | Ou operar |