동일한 정규식에서 여러 입력을 일치시켜 다음 번호를 캡처하려고합니다.
입력이 첫 번째 그룹과 일치하지 않으면 이전 캡처 그룹이 그룹과 일치하지 않아도 캡처되기 때문에 문제가 발생합니다. lookaround
어설 션을 사용해야한다고 생각합니다. 그러나 익숙하지 않습니다.정규식 캡처 그룹이 두 번째 일치 집합으로 흐른다
샘플 입력 :
wordA 123456
wordA: 123456
wordA : 123456
wordA R123465
wordA: R123456
wordA : R123456
wordB R123465
말로도는이 두 옵션 :
및 R
. 지금까지 나는 이것을 가지고있다 : /(?:wordA :?R?(\d+)|wordB R(\d+))/i
.
array
0 => string 'wordB R123456' (length=13)
1 => string '' (length=0)
2 => string '123456' (length=6)
구인 결과는 다음과 같습니다 :
array
0 => string 'wordB R123465' (length=13)
1 => string '123456' (length=6)
모든 아이디어를 어떻게 해결하는 마지막 샘플 입력을 사용
는이 결과를 제공?
감사합니다. 나는 그것이 2 개의 그룹을 가지고 있기 때문에 그것이 있었다라는 것을 알고 있었다. 그러나 나는 첫번째 부분이 didnt한지 알았다, 그리고, 나머지는 무시 될 것이다. 이것은 잘못된 가정이었습니다. – Kim