문제

나는 어디에서 재성분을 가지고있다

%word% can occur multiple times, separated by a "<"

% 단어%는 다음과 같이 정의됩니다 ".*?"|[a-zA-Z]+그래서 나는 썼다

(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*

캡처 그룹을 사용하여 축소 할 수있는 방법이 있습니까?

(".*"|[a-zA-Z]+)([<]\1)*, 

그러나 나는 생각하지 않습니다 \1 인용 된 문자열이나 단어 일 수 있으므로 캡처 된 것을 알지 못하기 때문에 첫 번째 캡처를 반복한다는 의미로 사용할 수 있습니다.

이전에 기록 된 그룹과 일치하는 데 사용할 수있는 유사한 것. 나는 C#에서 일하고있다.

도움이 되었습니까?

해결책 2

이 기능에 대한 지원이 아직 없으므로 문자열 교체기를 만들었습니다. 여기서 %%를 사용하여 Regex로 대체 해야하는 특정 단어를 작성한 다음 텍스트에 정의 된 정규 표현식으로 대체하기 위해 프로그램을 작성했습니다.

다른 팁

string.format를 사용하여 반복을 피하고 리그 그룹을 문자 그대로 반복 할 방법이 없습니다.

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top