2011-10-26 5 views
3

Dreamweaver의 정규식 찾기에서 작동하는 정규식 패턴을 만들었지 만 preg_match 패턴에 놓으면 실패합니다. Dreamweaver의 해석에서 다르게 작동하는 PHP (5.1.6) 정규식 규칙은 무엇입니까? PHP는 다음과 같습니다.Regex in PHP (preg_match) 패턴

preg_match("/(\{a\})([a-zA-Z0-9{} .])+(\{/a\})/i", "{a}{900678}{abcde}{0}{0}{0}{/a}"); 

현재 false가 반환됩니다. {a} 중간에 무엇이든 {/ a} 유형 문자열로 시작하는 모든 문자열과 일치하도록 패턴을 수정하려면 어떻게해야합니까? 위의 정규식은 중간에 '아무거나'는 일치하지 않지만 디버깅을 위해 표현식을 단순화한다는 것을 알았습니다.

+0

false를 반환 할뿐만 아니라 오류 메시지도 반환해야합니다. – mario

답변

4

/a 부분의 슬래시가 표현식의 끝 구분 기호로 해석됩니다. 당신은 아마 전체 패턴에 대한 또 다른 구분, 예컨대 :

preg_match("~(\{a\})([a-zA-Z0-9{} .])+(\{/a\})~i", 
      "{a}{900678}{abcde}{0}{0}{0}{/a}"); 

See it in action를 사용해야합니다.