명명 된 캡처 그룹에 문제가있어서 다시 사용하고 있습니다. 마치 캡쳐 그룹 A의 이름을 붙였을 때 "asd"와 같은 것을 캡처하고 \ k를 사용하고 캡쳐 그룹 A의 표현식을 다시 사용하려고 시도하는 것처럼 보입니다. 정규식 I와 일치하지 않기 때문에 다시 작동하지 않습니다. originaly는 A 그룹에 글을 썼지 만, 이전에 "asd"와 일치했던 A와 일치 시키려고합니다.Regex : 다시 캡처 그룹 사용
그래서 내가 좋아하는 뭔가가있는 경우 :
^(?<A>(?:a|s|d))\k<A>$
을 그리고 입력 :
캡처 그룹 A가 먼저 편지에 일치하고\k<A>
이제도를 찾고 있기 때문에, 작동
aa
에이.
첫 번째로 일치하는 A와 \k<A>
이 이제 다른 문자를 찾고 있기 때문에 as
으로 입력하면 작동하지 않습니다.
내가 원하는 것은 다시 캡처 그룹 A의 정규식 정규 표현식을 다시 사용하는 것입니다. 그래서 나는 \k<A>
= (?:a|s|d)
을 원한다.
여기의 문제는 무엇이며이를 해결할 수있는 방법이 있습니까?
감사합니다.
[재귀] (http://www.regular-expressions.info/recurse.html)를 찾고 있습니다. 불행하게도 널리 지원되는 기능은 아닙니다. 나는 posix-ere가 그것을 지원한다고 생각하지 않는다. –
@ Rawing 그래, 맞아. 대신 \ gname을 사용했지만 실제 정규 표현식에 몇 가지 다른 문제가 있지만 모든 것이 제대로 작동합니다. 답변으로 제출하고 나는 당신에게 포인트를 줄 것이다. – Piwwoli
'\ g'name '을 사용할 수 있다면 posix-ere 태그가 잘못되었습니다. 환경이란 무엇입니까? PHP? 루비? –