Ajuda:Expressões regulares

Nuvola apps important.svg Atenção: A informação presente nesta página contém provavelmente erros que devem ser corrigidos.
Isso deve-se às diferentes interpretações das expressões regulares conforme a extensão do MediaWiki ou programa usado.

Esta página descreve caracteres especiais, também chamados metacaracteres (assim como sequências destes) usados em expressões regulares que podem ou não ser utilizados nas seguintes páginas:


Outros programas/recursos não abordados especificamente nesta página (mas a mesma pode servir de ajuda):


Nota: nem todos os caracteres especiais se podem usar em qualquer página (ou programa) descrita anteriormente, por isso esta página contém secções de exemplos conforme a página (ver #Exemplos práticos) e a indicação em que páginas funciona na tabela que se segue nas colunas "Spam", "Title", "Salebot" e "Filtro". A sintaxe utilizada pelas extensões do MediaWiki é a PCRE.

Descrição dos caracteres especiais

Caractere especial ou
sequência de caracteres especiais
Descrição Spam Title Salebot Filtro
| A barra vertical significa "ou"; detecta o termo anterior ou posterior. Pode ser combinado com várias barras verticais. A utilização sem ser dentro de parêntesis pode depender do programa/extensão em que é utilizado, ver exemplos seguintes para saber se se pode utilizar. Sim Sim Sim
     sim|não|talvez Neste exemplo deteta "sim", "não" e "talvez" Sim
     muit(o|as) Neste caso detecta "muito" e "muitas" Sim Sim
. qualquer caractere (inclui espaços) Sim Sim Sim
* (0, 1 ou mais) nenhuma, uma ou mais repetições do termo anterior Sim Sim Sim
     .* Repetição (ou não) de qualquer caractere (inclui espaços) uma ou mais vezes. Sim Sim
     (ha)* Repetição (ou não) de "ha" uma ou mais vezes. Deteta "ha", "haha", "hahaha", etc. Sim Sim
     \d* Repetição (ou não) de um dígito uma ou mais vezes. Deteta "3", "823", "5961837254", etc. Sim Sim
     alt\w* Repetição (ou não) de um caractere alfanumérico uma ou mais vezes. Deteta "alto", "alternativa", "super!altamente", etc. mas não quando "alt" é seguido de um dígito como "super!alt1". Sim Sim
+ (1 ou mais) uma ou mais repetições do termo anterior. Equivalente a {1,} Sim Sim
? (0 ou 1) Nenhuma ocorrência ou uma do termo anterior, ou seja, o termo anterior é opcional (mas tenta encontrar primeiro uma ocorrência e só depois a ausência). Caso o ? seja colocado após um dos símbolos ? * + ou da expressão {mínimo,máximo} assume primeiro a ausência e só depois a ocorrência. Sim Sim
\ Este caractere especial tem duas funções conforme o que lhe segue:
  • é utilizado como caractere de escape, para que se interprete um caractere especial como caractere normal. Por exemplo, a expressão quem\? deteta "quem?" e não "que" e "quem" caso se usasse quem?.
  • é utilizado para uma sequência especial como por exemplo número \d que deteta "número 8", "número 17456", etc. e não "número d" pois o "d" não é um caractere especial para que o "\" seja usado para caractere de escape.
Sim Sim Sim Sim
\A
\b Restringe ao início, o meio ou o fim da expressão que antecede ou precede. Por exemplo \bsim deteta "é simplesmente" mas não deteta "assim". Sim Sim Sim
\B Qualquer posição do texto desde que não seja no início ou no fim de uma palavra. Por exemplo \Btur\B deteta "altura" mas não deteta "altur". Já \btur\B deteta "turismo" mas não "altura"
\d qualquer dígito (0 a 9) Sim Sim
\D qualquer caractere que não seja um dígito
\G
\s Espaço em branco Sim Sim Sim
\S Tudo excepto o espaço Sim
\w qualquer caractere alfanumérico incluindo traço inferior; é o equivalente a [a-z0-9_] Sim Sim
\W qualquer caractere que não seja alfanumérico, incluindo traço inferior; é o equivalente a [^a-z0-9_] Sim Sim
\z
\Z
\0 Sim
\1 Pode-se usar \1 \2 \3 \4 \5 \6 \7 \8 \9 para capturar um grupo anterior (dentro de parêntesis). Exemplo (ha)\1{2,} permite detectar "hahaha". Exemplo .*(.)\1{10}.* permite detectar 10 caracteres iguais repetidos. Outro exemplo dois (tigres|esquilos) três \1 deteta "dois tigres três tigres" e "dois esquilos três esquilos", mas não "dois tigres três esquilos". Sim Sim
( ) Permite definir um grupo de expressões ou caracteres. Captura também a expressão para referência posterior (ver expressão anterior \1), a não ser que se use como (?: ) que não captura. Os parêntesis também permitem aplicar expressões regulares posteriormente a esse grupo (e não apenas a um caractere) como por exemplo (ha)+ Sim Sim Sim
     (forum|site) novo Neste caso usa um elemento comum "novo" para detetar várias expressões como "forum novo" e "site novo" Sim Sim
     (bom){2} Neste caso agrupa "bom" como um só elemento para considerar a repetição que detecta "bombom" Sim
     (muito)? bom Neste caso agrupa "bom" como um só elemento para considerar a ocorrência ou não desse elemento, detentando "muito bom" e "bom" Sim
[ ] Permite especificar os caracteres a detetar Sim Sim Sim
     [abc] Deteta "a", "b" ou "c" Sim Sim Sim
     [0-4] Exemplo para detetar um intervalo de caracteres. Neste caso deteta "1", "2", "3" e "4" Sim Sim Sim
     [a-d] Deteta "a", "b", "c" e "d" Sim Sim Sim
     [0-4a-d] Deteta "1", "2", "3", "4", "a", "b", "c" e "d" Sim Sim
     [a-g-[b-e]] Exemplo para subtração de um conjunto. Neste exemplo significa detetar o intervalo de letras de "a" a "g" excepto o intervalo de letras de "b" a "e". Deteta então "a", "f" e "g". Em princípio esta expressão não funciona.
     [a-z-[aeiou]] Neste caso deteta todas as consoantes (pode ser interpretar a expressão como alfabeto exceto vogais). Em princípio esta expressão não funciona.
     [a-z&&[bdg]] Neste caso deteta todas as letras do alfabeto exceto as letras "b", "d" e "g". Funciona como interseção.
     [-abc] Caso o hífen esteja logo no início é interpretado como tal. No exemplo corresponde ao "hífen", letra "a", "b" e "c" Sim
[^ ] Permite especificar os caracteres a não detetar (negação). Ver também outro uso do caractere ^ Sim Sim
     [^abc] qualquer caractere que não seja "a", "b" ou "c" Sim Sim
     [^a-f] qualquer caractere que não seja uma letra do alfabeto entre "a" e "f"; o mesmo que [^abcdef] Sim Sim
     [^0-4] qualquer caractere que não seja um número entre "0" e "4"; o mesmo que [^01234] Sim Sim
{ } Quantificador. Permite especificar o número de vezes que a expressão anterior ocorre, quer o número exacto, quer o mínimo, quer o mínimo e máximo. Sim Sim
     {número} Número exacto de vezes que o elemento anterior se repete Sim Sim
     {mínimo,} Número mínimo de vezes que o elemento anterior se repete Sim Sim
     {mínimo,máximo} Número mínimo e máximo de vezes que o elemento anterior se repete Sim Sim
(?:expressão) Permite definir um grupo de expressões ou caracteres. Não captura o grupo para referência posterior ao contrário de ( ) Sim Sim
(?!expressão) Grupo em negação não capturado. Por exemplo muito (?!mais|menos) deteta tudo o que tiver "muito" e não seja seguido pelas palavras "mais" ou "menos" como "muito bom", "muito qualquer", etc.
(?=expressão)
(?<!expressão) Sim
(?<=expressão)
(?>expressão)
\045 Código ASCII no sistema octal. Neste exemplo "045" corresponde ao símbolo "%".
\x25 Código hexadecimal. Neste exemplo "25" corresponde ao símbolo "%".
\X
\x{25} Semelhante ao anterior mas na sintaxe PCRE para código hexadecimal. Neste exemplo "25" corresponde também ao símbolo "%". Sim
\u0025 Código Unicode. Neste exemplo "0025" corresponde ao símbolo "%". Em princípio não é possível usar esta expressão nas páginas do MediaWiki. Para isso use o \x{25} Não?
\p{nome da classe} Caracteres de um determinada classe. Por exemplo, \p{IsHebrew} em que "IsHebrew" é o nome da classe Unicode para as letras da língua hebraica. Para uma lista completa ver secção desta página #Lista de nomes de classes Unicode Sim
\P{nome da classe} Caracteres que não sejam da classe definida. É semelhante ao anterior mas em negação. Sim
\p{^nome da classe} Caracteres que não sejam da classe definida. É semelhante a \P{nome da classe} (notar que o "P" está em maiúscula") Sim
# comentárioXPTO Utilizado para comentários. Todo o texto que se encontre após # é interpretado como comentário Sim Sim Sim
(?#comentárioXPTO) Utilizado para comentários, normalmente dentro das próprias expressões regulares. Todo o texto que se encontre entre os parênteses não é considerado uma expressão regular. Por exemplo muitos?(?#comentárioXPTO)tigre deteta "muitostigre" e "muitotigre"
^ Início do texto. Por exemplo "^34" deteta "34" num texto que comece com "34 hs gj ada hs". Não confundir com \b que tem uma funcionalidade diferente. Não[1] Sim
$ Fim do texto. Por exemplo "34$" deteta "34" num texto que termine com "hs gj ada hs34". Não confundir com \b que tem uma funcionalidade diferente. Não[1]
(?i:expressão) Utilizado para considerar maiúsculas e minúsculas. Por exemplo, (?i:Meta) corresponde a "Meta", "META", "meta", "MeTa", etc. Não[2]
(?-i:expressão) Inverso do anterior. Por exemplo (?i:sím)(?-i:bolo) deteta "SIMbolo" e "símbolo" mas não "símBOLO" Não
\Qexpressão\E Interpreta literalmente a expressão como caracteres.
     \Q+({\E Interpreta literalmente a expressão como caracteres. Deteta "+({"
(expressão)(?(grupo)sim|não)
(expressão)(?(grupo)sim)
En otros idiomas