1
C#에서 Regex.Replace를 사용하고 있습니다. 대체 된 문자열에서 선택적 그룹 중 하나가 캡처 된 경우에만 문자열의 일부가 나오는 조건을 넣고 싶습니다. Flag
캡처 그룹 선택 것을Regex.Replace : 선택적 그룹 기반 조건부 대체
(?<Expiry>\d+[my])\s+(?<Flag>[a-z][A-Z])?\s*$)
주 - 예를 들어,이 정규식이있다.
대체 문자열은
"Expiry is ${Expiry}. Flag is : ${Flag}"
지금 내가 깃발 그룹이 캡처되는 경우
"Flag is : ${Flag}"
문자열은 결과에 표시 할 수 있습니다.
나는 다음과 같은 코드를 사용하고 있습니다 :
var regex = new
Regex("(?<Expiry>\d+[my])\s+(?<Flag>[a-z][A-Z])?\s*$)",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
string result = regex.Replace("10y", "Expiry is ${Expiry}. Flag is : ${Flag}";
결과는해야 Expiry is 10y
에 의해.
string result = regex.Replace("10y abc", "Expiry is ${Expiry}. Flag is ${Flag}");
결과는 "만료는 10y입니다. 플래그는 : abc"입니다.
도움을 주시면 감사하겠습니다.
현재 코드를 공유 할 수 있습니까? –
관련 항목 : http://stackoverflow.com/questions/767869/how-to-regex-replace-match-group-item-with-method-result –
잠시 시간을내어 편집인을 알아보십시오. 코드를 게시 할 때 사용해야하는 코드 서식 지정 명령 (Ctrl-K)이 있습니다. 그렇지 않으면 markdown은'*'(및 기타)를 해석하여 코드의 의미를 변경합니다. –