Sintaxe de expressão regular
A a expressão regular descreve um ou mais seqüências de caracteres para corresponder ao pesquisar um corpo de texto. A expressão serve como um modelo para que corresponda a um padrão de caractere para a seqüência de caracteres que está sendo pesquisado.
Uma expressão regular consiste em comum (por exemplo, letras de a z) e caracteres especiais, conhecidos como metacaracteres.
Caracteres Especiais
A tabela a seguir contém uma lista de metacaracteres de caractere único e seu comportamento em expressões regulares.
Observação |
---|
Para corresponder a um desses caracteres especiais, você deve primeiro escape o caractere, ou seja, preceda-o com um caractere de barra invertida (\). Por exemplo, para procurar o "+" caractere literal, você pode usar a expressão "\ +". |
Metacaractere |
Comportamento |
Exemplo |
---|---|---|
* |
Coincide com o caractere anterior ou uma subexpressão zero ou mais vezes. Equivalente a {0,}. |
zo*corresponde a "z" e "zoo". |
+ |
Coincide com o caractere anterior ou a subexpressão uma ou mais vezes. Equivalente a {1,}. |
zo+corresponde a "zo" e "zoo", mas não a "z". |
? |
Coincide com o caractere anterior ou a hora de subexpressão zero ou mais. Equivalente a {0,1}. Quando? segue imediatamente o quantificador any (*, +,?, {n}, {n,}, ou {n,m}), o padrão de correspondência é - greedy. Um padrão não greedy coincide com o mínimo de seqüência de caracteres pesquisada possível. O padrão de greedy coincide com o máximo da seqüência de caracteres pesquisada quanto possível. |
zo?corresponde a "z" e "zo", mas não a "zoo". o+?corresponde a um único "o" no "oooo", e o+ corresponde a todos os s de "o". do(es)?corresponde a "fazer" em "fazer" ou "". |
^ |
Corresponde à posição no início da cadeia de caracteres pesquisada. Se a m os caracteres (Pesquisar em várias linhas) está incluído com os sinalizadores ^ também corresponde à posição seguinte \n ou \r. Quando usado como o primeiro caractere em uma expressão de colchete, ^ nega o conjunto de caracteres. |
^\d{3}corresponde a 3 dígitos numéricos no início da cadeia de caracteres pesquisada. [^abc]corresponde a qualquer caractere, exceto a, b e c. |
$ |
Corresponde à posição no final da seqüência de caracteres pesquisada. Se a m os caracteres (Pesquisar em várias linhas) está incluído com os sinalizadores ^ também corresponde à posição antes \n ou \r. |
\d{3}$corresponde a 3 dígitos numéricos, no final da seqüência de caracteres pesquisada. |
. |
Corresponde a qualquer caractere único exceto o caractere de nova linha \n. Para corresponder a qualquer caractere incluindo o \n, use um padrão como [\s\S]. |
a.ccorresponde a "abc", "a1c" e "a-c". |
[] |
Marca o início e no final de uma expressão de colchete. |
[1-4]corresponde a "1", "2", "3" ou "4". [^aAeEiIoOuU]corresponde a qualquer caractere não vogal. |
{} |
Marca o início e no final de uma expressão de quantificador. |
a{2,3}corresponde a "aa" e "aaa". |
() |
Marca o início e fim de uma subexpressão. Subexpressões podem ser salvas para uso posterior. |
A(\d)corresponde a "a0" para "a9". O dígito é salvo para uso posterior. |
| |
Indica uma escolha entre dois ou mais itens. |
z|foodcorresponde a "z" ou "comida". (z|f)oodcorresponde a "zood" ou "comida". |
/ |
Indica o início ou fim de um padrão de expressão regular literal em JScript. Após os segundo "/", caractere único sinalizadores podem ser adicionados para especificar o comportamento de pesquisa. |
/abc/gié um JScript literal expressão regular que corresponda ao "abc". O g Especifica do sinalizador (global) para localizar todas as ocorrências do padrão e o i (ignorar maiúsculas e minúsculas) sinalizador torna a pesquisa diferencia maiúsculas de minúsculas. |
\ |
Marca o próximo caractere como um caractere especial, um literal, uma retrorreferência ou um escape octal. |
\ncorresponde a um caractere de nova linha. \(corresponde a "(". \\corresponde a "\". |
Caracteres especiais mais perdem seu significado e representam caracteres comuns quando elas ocorrem dentro de uma expressão de colchete. Para obter mais informações, consulte "Caracteres em expressões de colchete" in Listas de correspondência de caracteres.
Metacaracteres
A tabela a seguir contém uma lista de vários caracteres metacaracteres e seu comportamento em expressões regulares.
Metacaractere |
Comportamento |
Exemplo |
---|---|---|
\b |
Corresponde a um limite de palavra; ou seja, a posição entre uma palavra e um espaço. |
er\bcorresponde a "er" em "never" mas não o "er" em "verbo". |
\B |
Corresponde a um não-limite de palavra. |
er\Bcorresponde a "er" em "verbo" mas não o "er" em "never". |
\d |
Corresponde a um caractere de dígito. Equivalente a [0-9]. |
No pesquisado string "12 345," \d{2} corresponde a "12" e "34". \dcorresponde a "1", 2","3","4"e"5". |
\D |
Corresponde a um caractere não dígito. Equivalente a [^0-9]. |
\D+corresponde a "abc" e" Def." no "abc123 def". |
\w |
Corresponde a qualquer um dos seguintes caracteres: A-Z, a-z, 0-9 e o caractere de sublinhado. Equivalente a [A-Za-z0-9_]. |
No pesquisado string "A rápida marrom fox…", \w+ corresponde a "Ele", "rápido", "marrom" e "fox". |
\W |
Corresponde a qualquer caractere, exceto A-Z, a-z, 0-9 e sublinhado. Equivalente a [^A-Za-z0-9_]. |
No pesquisado string "A rápida marrom fox…", \W+ corresponde a "…" e todos os espaços. |
xyz |
Um conjunto de caracteres. Corresponde a qualquer um dos caracteres especificados. |
[abc]corresponde a "a" em "plain". |
^xyz |
Um conjunto de caracteres negativos. Corresponde a qualquer caractere que não esteja especificada. |
[^abc]corresponde ao "p", "l", "i" e "n" em "plain". |
a-z |
Um intervalo de caracteres. Corresponde a qualquer caractere no intervalo especificado. |
[a-z]corresponde a qualquer caractere alfabético minúsculo no intervalo "a" a "z". |
^a-z |
Um intervalo negativo de caracteres. Corresponde a qualquer caractere que não esteja no intervalo especificado. |
[^a-z]corresponde a qualquer caractere que não está no intervalo "a" a "z". |
{n} |
Corresponde exatamente ao n vezes. n é um inteiro não negativo. |
o{2}não corresponde ao "o" em "Bob", mas faz correspondência dois "o" s em "comida". |
{n,} |
Coincide pelo menos n vezes. n é um inteiro não negativo. *é equivalente a {0,}. +é equivalente a {1,}. |
o{2,}não corresponde ao "o" em "Bob" mas corresponde a todos os "o" s em "foooood". |
{n,m} |
Coincide pelo menos n e no máximo m vezes. n e m são inteiros não negativos, onde n < = m. Não pode haver um espaço entre a vírgula e os números. ?é equivalente a {0,1}. |
A seqüência de caracteres pesquisada"1234567" \d{1,3} corresponde a "123", "456" e "7". |
(pattern) |
Correspondências padrão e salva a correspondência. Você pode recuperar a salva de correspondência de elementos da matriz retornados pela exec Method na JScript. Para coincidir os caracteres de parênteses (), use "\ (" ou "\". |
(Chapter|Section) [1-9]corresponde a "Capítulo 5" e "Chapter" é salvo para uso posterior. |
(?:pattern) |
Correspondências padrão mas não salva a correspondência; Isto é, a correspondência não é armazenada para possível uso posterior. Isso é útil para combinar partes de um padrão com o "ou" caractere (|). |
industr(?:y|ies)é equivalente a industry|industries. |
(?=pattern) |
Positiva visão antecipada. Depois que uma correspondência for encontrada, a pesquisa para a próxima correspondência inicia antes do texto correspondente. A correspondência não é salvo para uso posterior. |
^(?=.*\d).{4,8}$aplica uma restrição que uma senha deve ter 4 a 8 caracteres e deve conter pelo menos um dígito. Dentro do padrão, .*\d localiza qualquer número de caracteres, seguido de um dígito. Para a seqüência pesquisada "abc3qr", isso corresponde a "abc3". Iniciando antes, em vez de após essa correspondência, .{4,8} corresponde a uma seqüência de caracteres 4 a 8. Isso corresponde a "abc3qr". O ^ e $ especificar as posições no início e fim da seqüência de caracteres pesquisada. Isso é para evitar que uma correspondência se a seqüência de caracteres pesquisada contém caracteres que fora do correspondente. |
(?!pattern) |
Negativa visão antecipada. Corresponde a uma seqüência de pesquisa que não corresponde a padrão. Depois que uma correspondência for encontrada, a pesquisa para a próxima correspondência inicia antes do texto correspondente. A correspondência não é salvo para uso posterior. |
\b(?!th)\w+\bcorresponde a palavras que não começam com "th". Dentro do padrão, \b corresponde a um limite de palavra. A seqüência de caracteres pesquisada" rápida ", isso corresponde ao primeiro espaço. (?!th)corresponde a uma seqüência de caracteres que não seja "th". Isso corresponde a "qu". Iniciando antes que coincidirem com, \w+ corresponde a uma palavra. Isso corresponde a "rápida". |
\cx |
Corresponde ao caractere de controle é indicado por x. O valor de x deve estar no intervalo de A-Z ou a-z. Se não estiver, c é considerado um literal "c" caractere. |
\cMcorresponde a um caractere de retorno de carro ou de CTRL + M. |
\xn |
Correspondências n, onde n é um valor de escape hexadecimais. Os valores de escape hexadecimais devem ser exatamente dois dígitos. Permite que os códigos ASCII ser usado em expressões regulares. |
\x41corresponde a "A". \x041é equivalente a "\x04" seguido por "1" (como n deve ter exatamente 2 dígitos). |
\num |
Correspondências num, onde num é um inteiro positivo. Esta é uma referência a salvas de correspondências. |
(.)\1corresponde a dois caracteres idênticos consecutivos. |
\n |
Identifica um valor de escape octais ou referência anterior. Se \n é precedido pelo menos n capturados subexpressões, n é uma referência anterior. Caso contrário, n é um valor de escape octais se n é um dígito octal (0-7). |
(\d)\1coincide com dois dígitos de idênticos consecutivos. |
\nm |
Identifica um valor de escape octais ou referência anterior. Se \nm é precedido pelo menos nm capturados subexpressões, nm é uma referência anterior. Se \nm é precedido pelo menos n capturados subexpressões, n é uma retrorreferência seguida literal m. Se nenhuma dessas condições existirem, \nm corresponde ao valor de escape octal nm quando n e m são dígitos octais (0-7). |
\11corresponde a um caractere de tabulação. |
\nml |
Valor de escape octais de correspondências nml quando n é um dígito octal (0-3) e m e l são dígitos octais (0-7). |
\011corresponde a um caractere de tabulação. |
\un |
Correspondências n, onde n é um caractere Unicode, expresso como quatro dígitos hexadecimais. |
\u00A9coincide com o símbolo de copyright (©). |
Caracteres não imprimíveis
A tabela a seguir contém as seqüências de escape para representam caracteres não imprimíveis.
Caracterer |
Matches |
Equivalente a |
---|---|---|
\f |
Caractere de avanço de formulário. |
\x0c e \cL |
\n |
Caractere de nova linha. |
\x0a e \cJ |
\r |
Caractere de retorno de carro. |
\x0d e \cM |
\s |
Qualquer caractere de espaço em branco. Isso inclui o espaço, tabulação e avanço de página. |
[ \f\n\r\t\v] |
\S |
Qualquer caractere de espaço de non–white. |
[^ \f\n\r\t\v] |
\t |
Caractere de tabulação. |
\x09 e \cI |
\v |
Caractere de tabulação vertical. |
\x0b e \cK |
Ordem de precedência
Uma expressão regular é avaliada muito como uma expressão aritmética; ou seja, avaliado da esquerda para a direita e segue uma ordem de precedência.
A tabela a seguir contém a ordem de precedência de operadores de expressão regular, em ordem decrescente.
Operador ou operadores |
Descrição |
---|---|
\ |
Escape |
(), (?:), (?=), [] |
Colchetes e parênteses |
*, +, ?, {n}, {n,}, {n,m} |
Quantificadores |
^, $, \anymetacharacter |
Âncoras e seqüências |
| |
Alternação |
Caracteres têm precedência maior do que o operador de alternação, permitindo, por exemplo, "m|food" para coincidir com "m" ou "comida".