Regular expression

De WikiLICC
Ir para: navegação, pesquisa

Breve resumo de expressões regulares para o Kate.

Veja www.kate-editor.org/doc/regular-expressions.html

Padrões

  • Caracteres com funćão especial (devem ser "escaped")
\ (backslash) 
usado para "escape"
]  
Finaliza uma classe
^ (caret)  
Nega uma classe
- (dash)  
Denotes um range
[a|b|1|2]  
encontra somente a ou b ou 1 ou 2
  • Classes de caracteres e padrões
[abc] 
a, b ou c
[a-c] 
a, b ou c
[0123456789] 
qualquer dígito
[0-9]  
qualquer dígito
[^abc] 
qualquer caractere exceto a ,b ou c
\a  
caractere BELL (BEL, 0x07)
\f  
caractere form feed (FF, 0x0C)
\n  
caractere fim de linha (LF, 0x0A)
\r  
caractere carriage return (CR, 0x0D)
\t  
caractere TAB (HT, 0x09)
\v  
caractere TAB vertical (VT, 0x0B)
\xhhhh 
caractere Unicode hhhh
. (dot)
qualquer caractere (inclui newline)
\d  
qualquer dígito [0-9]
\D  
qualquer não-dígito [^0-9] ou [^\d]
\s  
espaco em branco. Igual a [ \t\n\r]
\S  
exceto espaco em branco. Igual a [^ \t\r\n] e [^\s]
\w  
word caractere: dígito ou letra. Igual a [a-zA-Z0-9]
\W  
exceto word caractere



Padrões de substituicão (entre parenteses)

(int|float|double)\s+\w+ 
Somente um dos int, float ou double seguida por espaco e algumas letras.
(\w+),\1  
Encontra duas palavras repetidas separada por vírgula. Note que \1 repere o padrão
  • Olhando a frente, inicia com ?= ou ?!
Bill(?! Gates) 
Bill Clinton, Billy the kid, mas não Bill Gates

Caracteres especiais em padrões de substituićão

\ (backslash) 
Escape
^ (caret)  
Comeco de string
$  
fim de string
() 
denota padrões de substituićào
{} 
quantificadores numéricos
[] 
delimita classes
|  
ou lógico
+  
quantificador 1 ou mais
*  
quantificador 0 ou mais
?  
quantificador 0 ou 1

Quantificadores

{1}  
exatamente 1 ocorrência
{0,1}  
0 ou 1 ocorrência
{,1}  
0 ou 1 ocorrência
{5,10} 
5 a 10 ocorrências
{5,}  
no mínimo 5 ocorrências
*  
0 ou mais. {0,}
+  
1 ou mais. {1,}
?  
0 ou 1 ocorrência. {0,1}
^\d{4,5}  
qualquer dígito 4 ou 5 vezes. “1234” e “12345”, mas não “567” nem “223459”
\s+  
um ou mais espacoes em branco
(bla){1,} 
um ou mais blablabla
/?>  
encontra “/>” em “<closeditem/>” e “>” em “<openitem>”.

Assertions

^  
Encontra o início da palavra
$  
Encontra o fim da palavra
\b  
Separador de palavras
\B  
Exceto separador de palavras

Exemplos

^Peter 
Encontra "Peter, hey!" mas não "Hey, Peter!"
you$  
Encontra "you" em "Me and you" mas não "Are you ok?"
\bem\b 
Encontra "Está em casa" mas não "temos"
\Bem\B 
Encontra "temos" mas não "Está em casa"


(?=PATTERN)  
A lookahead assertion looks at the part of the string following a possible match. The positive lookahead will prevent the string from matching if the text following the possible match does not match the PATTERN of the assertion, but the text matched by that will not be included in the result.
(?=\w)  
The expression handy(?=\w) will match at “handy” in “handyman” but not in “That came in handy!”
(?!PATTERN)  
The negative lookahead prevents a possible match to be acknowledged if the following part of the searched string does match its PATTERN.
\w+\b(?!\s*&) 
The expression const \w+\b(?!\s*&) will match at “const char” in the string “const char* foo” while it can not match “const QString” in “const QString& bar” because the “&” matches the negative lookahead assertion pattern.