후속작입니다이것질문. 나는 그것이 새로운 질문을 정당화할 만큼 충분히 다르다고 생각합니다.
내가 이해한 바에 따르면 캡처 그룹은 텍스트만 캡처합니다. 즉, (\ba\b)
일치하는 문자열만 저장할 때 a
단어 경계 자체는 텍스트가 아니기 때문에 포함되지 않습니다.
이로 인해 패턴이 (\ba\b) \B\1\B
일치할 수 있어야 한다고 믿게 되지만 a zaz
(두 번째 발생은 a
결국 단어가 아닌 두 경계 사이에서 발생합니다), 그렇지 않습니다.
내가 무엇을 놓치고 있나요?
답변1
z를 놓쳤나요?
$ echo a zaz | grep -P '(\ba\b) \B\1\B'
- no output -
$ echo a zaz | grep -P '(\ba\b) z\B\1\Bz'
a zaz
\b
괄호에 추가 문자가 포함되지 않는 것처럼 \B
추가 문자도 일치하지 않습니다. 따라서 정규식에는 a 주변의 z와 일치하는 항목이 없습니다.