php 추출 정규식 선택적 그룹?




정규표현식 예제 (3)

내가하고있는 preg_match 정규식에 혼란스러워 보였으므로, 신선한 눈과 도움을 주시면 감사하겠습니다.

현재 정규식은 다음과 같습니다.

/<!--menu:start:\(([0-9])\,([0-9])\)-->(.*?)<!--menu:end-->/se

숫자 입력 및 콜론 예 : (1,4) 선택, 그래서 그것은 일치하는 찾고 :

<!--menu:start--><!--menu:end-->

또는

<!--menu:start:(0,3)--><!--menu:end-->

일치하지 않는 그룹으로 묶고 옵션으로 설정하십시오 : (?:...)?

/<!--menu:start(?::\(([0-9])\,([0-9])\))?-->(.*?)<!--menu:end-->/se

이렇게 :

/<!--menu:start(?::\((\d),(\d)\))?-->(.*?)<!--menu:end-->/se

선택 사항이 될 부분 주위에 캡처하지 않는 그룹 (?: ) :)을 추가 한 다음 물음표 (?:<optional content>)? 를 접미사로 추가 (?:<optional content>)?


이 옵션은 비 캡처 그룹 (- (?: )? - 당신의 선택 부분과 일치하고, 또한 숫자를 맞추기 위해 [0-9] 대신 \d :

/<!--menu:start(?::\((\d),(\d)\))?-->(.*?)<!--menu:end-->/se

괄호 안의 숫자가 하나 이상의 숫자로 구성 될 수 있다면 대신이 숫자를 사용하십시오.

/<!--menu:start(?::\((\d+),(\d+)\))?-->(.*?)<!--menu:end-->/se




preg-match