Предположим, у меня есть следующее регулярное выражение:
-(\d+)-
и я хочу заменить, используя C #, группу 1 (\d+)на AA, чтобы получить:
-AA-
Теперь я заменяю его, используя:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Но мне это не очень нравится, потому что если я _(\d+)_вместо этого изменю шаблон , мне придется изменить строку замены _AA_тоже, и это противоречит принципу СУХОЙ.
Я ищу что-то вроде:
Сохраняйте сопоставленный текст в точности таким, какой он есть, но измените Группу 1 на this textи Группу 2 на another text...
Редактировать:
это был просто пример. Я просто ищу общий способ сделать то, что я сказал выше.
Это должно работать для:
anything(\d+)more_text и любой шаблон, который вы можете себе представить.
Все, что я хочу сделать, это заменить только группы и сохранить остаток матча.
:). На мой взгляд, это решение намного лучше и чище, чем использование lookahead и lookbehinds.