Tipos Âncora

Vamos agora falar sobre os metacaracteres do tipo âncora. Por que âncora? Porque eles não casam caracteres ou definem quantidades, em vez disso, eles marcam uma posição específica na linha. Assim, eles não podem ser quantificados, então o mais, o asterisco e as chaves não têm influência sobre âncoras.

Circunflexo: ^

O circunflexo também é o marcador de lista negada, mas apenas dentro da lista (e no começo), fora dela, ele é a âncora que marca o começo de uma linha.

^[0-9]

Ponto

Isso quer dizer: a partir do começo da linha, case um número, ou seja, procuramos linhas que começam com números. O contrário seria:

^[^0-9]

Ou seja, procuramos linhas que não começam com números. O primeiro circunflexo é a âncora e o segundo é o “negador” da lista. É claro que o circunflexo como marcador de começo de linha só é especial se estiver no começo da ER por que não faz sentido procurarmos uma palavra seguida de um começo de linha, pois se tiver uma palavra antes do começo de uma linha, ali não é o começo da linha! Desse modo, a ER:

[0-9J^

Casa um número seguido de um circunflexo literal, em qualquer posição da linha. E essa ER casa o que?.

^^

Essa ER procura por linhas que começam com um circunflexo.

Exercício

Cifrão: $

Complementar ao circunflexo, o cifrão marca o fim de uma linha e só é válido no final de uma ER. Como o exemplo anterior, [0-9]$ casa linhas que terminam com um número.

Ponto

E o que você me diz da ER ^$?

- Hmmmm… Começo de linha, com o fim de linha… Uma linha vazia?

Acertou! É sempre bom ter essa ER na manga, pois procurar por linhas em branco é uma tarefa comum nas mais diversas situações.

Expressão Match
…..$ Últimos 5 caracteres de uma linha
^.{20,60}$ Linhas que tenham de 20 a 60 caracteres

Exercícios

Borda: \b

A borda, que como o próprio nome já diz, marca uma borda, mais especificamente, uma borda de palavra. Ela marca os limites de uma palavra, ou seja, onde ela começa e/ou termina.

Muito útil para casar palavras exatas, e não partes de palavras. Veja como se comportam as ERs nas palavras dia, diafragma, melodia, radial e bom-dia!:

Expressão Match
dia dia, diafragma, melodia, radial, bom-dia!
\bdia dia, diafragma, bom-dia!
dia\b dia, melodia, bom-dia!
\bdia\b dia, bom-dia!

Ponto

A borda força um começo ou a terminação de uma palavra. Entenda que “palavra” aqui é um conceito que engloba [A-Za-z0-9_] apenas, ou seja, letras, números e o sublinhado.

Por isso \bdia\b também casa bom-dia!, pois o traço e a exclamação não são parte de uma palavra.

Exercício

Resumos

  1. Circunflexo
    1. Serve para procurar palavras no começo da linha.
    2. Só é especial no começo da ER (e de uma lista).
  2. Cifrão
    1. Serve para procurar palavras no fim da linha.
    2. Só é especial no final da ER.
  3. Borda
    1. A borda marca os limites de uma palavra.
    2. O conceito “palavra” engloba letras, números e o sublinhado.
    3. A borda é útil para casar palavras exatas e não parciais.