Vamos supor que eu tenha o seguinte regex:
-(\d+)-
e quero substituir, usando C #, o Grupo 1 (\d+)
por AA
, para obter:
-AA-
Agora estou substituindo-o usando:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Mas eu realmente não gosto disso, porque se eu alterar o padrão para corresponder _(\d+)_
, também terei que alterar a string de substituição _AA_
, e isso é contrário ao princípio DRY.
Estou procurando algo como:
Mantenha o texto correspondente exatamente como está, mas altere o Grupo 1 por this text
e o Grupo 2 por another text
...
Edit:
Isso foi apenas um exemplo. Estou apenas procurando uma maneira genérica de fazer o que eu disse acima.
Deve funcionar para:
anything(\d+)more_text
e qualquer padrão que você possa imaginar.
Tudo o que quero fazer é substituir apenas grupos e manter o resto da partida.
:)
. Na minha opinião, essa solução é muito melhor e mais limpa do que usar lookahead e lookbehinds.