
Afirmações permitem que uma expressão regular combine com certas condições controladas.
Uma afirmação não precisa de um caractere para combinar, e em vez disso ela investiga as adjacentes de uma possível combinação, antes de conhecê-la. Por exemplo: a afirmação limite da palavra não tenta encontrar um caractere que não seja da palavra, oposto de uma palavra em sua posição, e ao invés disso, ele certifica-se de que não existe um caractere da palavra. Isto significa que a afirmação pode combinar onde não existe caractere, isto é, no final de uma string procurada.
Algumas verificações, de fato, possuem um padrão de correspondência, mas a parte do texto que correspondeu não será uma parte do resultado da correspondência, em relação à expressão completa.
As Expressões Regulares, como documentadas aqui, suportam as seguintes afirmações:
^
(circunflexo: início de string)Combina com o início da string procurada.
A expressão
^Peter
combinará com “ Peter” na string “Peter, ei!”, mas não com “Ei, Peter!”$
(final da string)Combina com o fim da string procurada.
A expressão
você\?$
combinará com o 'você' no final da string “É isto que deseja para você?”, mas não combinará com “É isto que deseja para você, certo?”\b
(limite da palavra)Combina se existir um caractere da palavra, mas não combina com o caractere de outra.
Isto é útil para encontrar finais de palavras, como por exemplo, finais para encontrar uma expressão inteira. A expressão
\bem\b
procurará separado por “em” na string “Ele estava em prantos no embarque”, mas não combinará, por exemplo, com o “em” de “ embarque”.\B
(sem limite de palavra)Combina com tudo que “\b” não combina.
Isto significa que ele combinará com string dentro de palavras. A expressão
\Em\B
combinará com “embarque” mas não com “Ele estava em prantos”.(?=PADRÃO)
(adiante positivo)Uma afirmação adiante olha na parte da string seguinte, como uma possível combinação. O 'adiante positivo' prevenirá a string de combinação, se o texto seguinte não combina com o PADRÃO da afirmação, mas o texto combinado não será incluído no resultado.
A expressão
carta(?=\w)
combinará com “carta” em “cartada”, mas não em “O jogador deu uma cartada!”(?!PADRÃO)
(adiante negativo)O 'adiante negativo' previne que uma possível combinação seja de conhecimento, se a seguinte parte da string buscada não combina com seu PADRÃO.
A expressão
const \w+\b(?!\s*&)
combinará com “const char” na string “const char* foo ” enquanto que não combinará “const QString” em “const QString& bar”, pois o “& ” combina com o padrão de afirmação negativo.