길이가 0 인 어설 션을 제외하고 입력의 문자는 항상 일치하는 데 소비됩니다. 입력 문자열의 특정 문자를 한 번 더 캡처하려는 경우에는 정규식에서 길이가 0 인 어설 션이 필요합니다.
여러 길이 제로의 주장이있다 (예를 들어 ^
(입력/라인), 입력/라인의 $
(끝) \b
(워드 경계)의 시작) (?<=)
긍정적 인 모습 숨김 및 (?=)
만 볼 어라운드 (긍정적 인 미리보기)는 입력에서 겹쳐지는 텍스트를 캡처 할 수있는 유일한 방법입니다. 부정적인 look-arounds ((?<!)
negative look-behind, (?!)
negative look-ahead)는 여기서는별로 유용하지 않습니다 : 그들이 진실이라고 주장하면 내부 캡처가 실패합니다; 그들이 거짓을 선언하면 일치는 실패합니다. 이러한 어설 션은 앞에서 언급 한 길이가 0이며, 이는 입력 문자열의 문자를 소비하지 않고도 어설 션한다는 것을 의미합니다. 어설 션이 성공하면 빈 문자열과 실제로 일치합니다. 위의 지식을 적용
될 것입니다 귀하의 경우에 작동하는 정규식 :
(?=(\w\w))
[룩어 헤드 (http://stackoverflow.com/questions/320448/overlapping-matches-in-regex) –