Âncoras Regex – 01

Resumo : neste tutorial, você aprenderá sobre âncoras regex e como usá-las para corresponder à posição no início e no final de uma linha.

Introdução às âncoras regex

Âncoras em expressões regulares são caracteres especiais que definem posições específicas no texto para correspondência.

Ao contrário das classes de caracteres , as âncoras não correspondem a nenhum caractere, mas representam as posições no texto onde uma correspondência deve ocorrer.

As âncoras são úteis quando você deseja impor restrições sobre onde um padrão deve corresponder na sequência de entrada.

As âncoras têm dois tipos:

  • Âncora de início de linha (^): corresponde à posição no início de uma linha. Quando você coloca o sinal de intercalação (^) no início de uma expressão regular, isso garante que o padrão apareça no início da linha.
  • Âncora de fim de linha ($): corresponde à posição no final de uma linha. Quando você coloca o cifrão ($) no final de uma expressão regular, isso garante que o padrão anterior apareça no final de uma linha.

Exemplos de âncoras Regex

O exemplo a seguir usa a \dclasse de caracteres para corresponder dois dígitos em uma sequência de tempo:

using System.Text.RegularExpressions;
using static System.Console;


var time = "11:30";
var pattern = @"\d\d";

var matches = Regex.Matches(time, pattern);
foreach (var match in matches)
{
    WriteLine(match);
}Linguagem de código:  C#  ( cs )

Saída:

11
30Linguagem de código:  C#  ( cs )

Ele retorna duas correspondências porque ambos \d\dos padrões correspondem a 11 e 30.

No entanto, se você usar o ^caractere âncora no início do padrão de expressão regular, ele corresponderá apenas a 11 assim:

using System.Text.RegularExpressions;
using static System.Console;


var time = "11:30";
var pattern = @"^\d\d";

var matches = Regex.Matches(time, pattern);
foreach (var match in matches)
{
    WriteLine(match);
}Linguagem de código:  C#  ( cs )

Saída:

11Linguagem de código:  C#  ( cs )

Isso ^\d\dgarante que a correspondência ocorra no início da sequência de entrada.

Da mesma forma, quando você usa a $âncora no final do padrão de expressão regular, ela corresponderá apenas ao final da string:

using System.Text.RegularExpressions;
using static System.Console;


var time = "11:30";
var pattern = @"\d\d$";

var matches = Regex.Matches(time, pattern);
foreach (var match in matches)
{
    WriteLine(match);
}Linguagem de código:  C#  ( cs )

Saída:

30Linguagem de código:  C#  ( cs )

Resumo

  • As âncoras Regex correspondem à posição, não aos caracteres.
  • A âncora circunflexa ( ^) corresponde ao início de uma linha.
  • A âncora do dólar ( $) corresponde ao final de uma linha.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *