2011-01-31 2 views
0

온라인 정규식 테스터 http://gskinner.com/RegExr/을 사용하여 다음과 같은 패턴을 생각해 냈습니다. (세 줄을 모두 붙여 넣었습니다. 정규 표현식 또는 패턴)이 같은 PHP에서 사용하는 경우정규식 패턴으로 인해 preg_match_all()에 붙여 넣을 때 구문 오류가 발생합니다.

RegExp: /<div class="label">.*?<h3>(.*?)</h3>.*?"more">(.*?)\|/g 
pattern: <div class="label">.*?<h3>(.*?)</h3>.*?"more">(.*?)\| 
flags: g 

:.

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '.' in ...

:

$pattern = '/<div class="label">.*?<h3>(.*?)</h3>.*?"more">(.*?)\|/g'; 

preg_match_all($pattern,$page,$matches); 

오류가 발생합니다

누군가이 도구에서 내 정규 표현식을 PHP에서 사용할 올바른 형식으로 가져올 수있는 방법을 설명해 주실 수 있습니까? 많은 감사합니다. 당신이 preg_match_all을 사용하고 있기 때문에 당신은 </h3>g 수단에 슬래시를 탈출하지 않는

답변

3

가 여기에 필요하지 않은 것, 전 세계적으로 적용하고 정규식의 PHP의 구현에 유효한 modifier 아니라, 단지 그것을

시도를 생략 이 :

$pattern = '/<div class="label">.*?<h3>(.*?)<\/h3>.*?"more">(.*?)\|/'; 
+0

+1하지만 슬래시입니다. – BoltClock

+0

@BoltClock : 감사합니다. 더 잘 알고 있어야하며 모두 고정되어 있어야합니다. –

+0

일반적인 대안은 예를 들어 '#r? eg * ex # i'와 같이 정규 표현식 분리 문자로 '#'과 같은 흔치 않은 문자를 사용하는 것입니다.이 명령은 외부 도출을 피할 때 유용합니다. – mario

관련 문제