숫자 값과 일치하는 정규식이있는 작은 코드 스 니펫과 대괄호 안의 선택 텍스트가 이어지고 'A'문자로 끝납니다. 예내 regex는 3 번 일치해야하지만 두 번만 일치합니다 (PHP)
preg_match_all("/([0-9]+)(?:\[(.*)\])?A/", "123[SomeText]A345[SomeOtherText]A678A", $matches);
print_r($matches);
이며, 예상되는 결과는 3 경기하는 것입니다 : 위의 코드는 두 번 일치하면서
Array
(
[0] => Array
(
[0] => 123[SomeText]A
[1] => 345[SomeOtherText]A
[2] => 678A
)
[1] => Array
(
[0] => 123
[1] => 345
[2] => 678
)
[2] => Array
(
[0] => SomeText
[1] => SomeOtherText
[2] =>
)
)
을 :
이Array
(
[0] => Array
(
[0] => 123[SomeText]A345[SomeOtherText]A
[1] => 678A
)
[1] => Array
(
[0] => 123
[1] => 678
)
[2] => Array
(
[0] => SomeText]A345[SomeOtherText
[1] =>
)
)
내가 뭘 잘못 볼 수 없습니다 주어진 정규식에서. 정규식 수정에 대한 제안은 언제나 환영합니다.
나는 그것이 '탐욕'과 관련이있을 거라고 생각이 라인
을하지만이 작업을해야합니다 어떻게/어디에서 그것을 고려해야할지 확신하지 못했습니다. 대답 해 주셔서 감사합니다. – Alex
정답 일뿐만 아니라 빠르고 정확한 해결책을 제시하는 데 필요한 추가 수준의 정규 표현식에 대한 훌륭한 설명. +1 – ridgerunner