Afirmações

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.