Resumo : neste tutorial, você aprenderá sobre a referência anterior de regex C# para fazer referência a um grupo de captura dentro da mesma expressão regular.
Introdução à referência anterior do Regex C#
Backreference permite fazer referência a um grupo capturado dentro da mesma expressão regular. Backrefence é útil para combinar ocorrências repetidas de um padrão.
Para especificar uma referência anterior, use \n
onde n representa o número de um grupo capturado que você deseja referenciar. Observe que o primeiro grupo capturado é \1
, o segundo grupo de captura é \2
e assim por diante.
O exemplo a seguir mostra o uso de uma referência anterior que corresponde a uma palavra duplicada em uma frase:
(\w+)\s+\1
Linguagem de código: C# ( cs )
Por exemplo, este padrão corresponderá às palavras “the the” na frase:
“é o melhor”
Aqui está a explicação do padrão:
- (\w+): captura um ou mais caracteres de palavras e os armazena no primeiro grupo de captura.
- \s+: corresponde a um ou mais caracteres de espaço em branco
- \1: refere-se ao texto capturado pelo primeiro grupo de captura.
O programa a seguir retorna a palavra duplicada “o” na frase “é o melhor”:
using System.Text.RegularExpressions;
using static System.Console;
var text = "It's the the best";
var pattern = @"(\w+)\s+\1";
var matches = Regex.Matches(text, pattern);
foreach (var match in matches)
{
WriteLine(match);
}
Linguagem de código: C# ( cs )
Saída:
the the
Linguagem de código: C# ( cs )
O programa a seguir remove a palavra repetida usando a referência anterior:
using System.Text.RegularExpressions;
using static System.Console;
var text = "It's the the best";
var pattern = @"(\b\w+)\s+\b\1\b";
var result = Regex.Replace(text, pattern, "$1");
WriteLine(result);
Linguagem de código: C# ( cs )
Saída:
It's the best
Linguagem de código: C# ( cs )
Observe que usamos o Replace()
método para substituir o padrão pelo “ $1
” no texto. O “ $1
” especifica o padrão de substituição, que é a palavra capturada ( $1
).
As referências anteriores de Regex são úteis em algumas situações, por exemplo:
- Encontrar palavras ou frases duplicadas em sentenças (já demonstradas anteriormente).
- Combinando padrões repetidos.
- Garantindo simetria em estruturas de cordas.
- Validando a entrada com base em correspondências anteriores.
Resumo
- Use uma referência anterior para fazer referência a um grupo capturado na mesma expressão regular.