다음 정규식이 있다고 가정 해 봅시다.
-(\d+)-
그리고 C #을 사용하여 Group 1 (\d+)
을 로 바꾸고 싶습니다 AA
.
-AA-
이제 다음을 사용하여 교체하고 있습니다.
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
그러나 패턴이 _(\d+)_
대신 일치 하도록 변경하면 교체 문자열 _AA_
도 변경해야하므로 이는 DRY 원칙에 위배 되므로이 점이 마음에 들지 않습니다 .
나는 다음과 같은 것을 찾고있다 :
일치하는 텍스트는 그대로 유지하지만 그룹 1을 기준 this text
으로 그룹 2를 기준으로 변경하십시오 another text
...
편집 :
그것은 단지 예일뿐입니다. 나는 위에서 말한 것을 수행하는 일반적인 방법을 찾고 있습니다.
그것은 작동해야합니다 :
anything(\d+)more_text
상상할 수있는 모든 패턴.
내가하고 싶은 것은 그룹 만 교체하고 나머지 경기는 유지하는 것입니다.
:)
. 내 생각에, 그 솔루션은 lookahead와 lookbehinds를 사용하는 것보다 훨씬 좋고 깨끗합니다.