2012-11-23 4 views
0

정규 표현식을 하나만 집어 넣을 수는 있지만 실제로는 얻을 수 없다면 해결하려고합니다.정규 표현식을 다른 장소에있는 두 개의 동일한 문자 클래스와 일치 시키려면

범위에서 하나가 될 수있는 일치하는 문자 쌍을 찾으려고합니다.

예를 들어

1 text 1  <--- This is a match 
1 text 2  <--- This is not a match 
2 text 1  <--- This is a match 

옵션의 목록은 유한, 그래서 난 그냥 예를 들어, 개별적으로 각각의 경우를 테스트 할 수 알고 : 그러나

1(.+?)1 
2(.+?)2 

, 내가이 일을 그룹화 사용하려고했다 하나의 검색어로

[1-8](.+?)[1-8] 

하지만이 (잘못) 일치 : 다음의 라인을 따라 뭔가

1 text 2  <--- This is not a match 

이 내가 두 번째 괄호 목록 일치하는 첫 번째 브래킷의 일치와 동일한 지 확인 할 수있는 방법이 있나요 ? 즉 첫 번째가 1과 일치하면 두 번째도 1이어야합니다.

답변

3

당신은 그룹을 사용하고 당신은 back reference

([1-8])(.+?)\1 

이 방법을 사용하려면 ([1-8])

2

([1-8])(?:.+?)\1 

\1first 캡처 그룹을 참조 해당 그룹에 참조해야 앞뒤 문자는 전체가 일치하는 것으로 간주되어야합니다.

관련 문제