2011-05-13 2 views
0
alertsystem.notification = {"msgId":"1","msgTitle":"Message","msgBody":"No new message.","msgLink":"","msgImage":""}; 

위의 코드에서 follow 변수의 값과 일치 시키려고합니다. 지난 주까지이 패턴을 preg_match('#(\[\{.*?\}\])#s', $html, $match);까지 사용해 왔지만 작동을 멈췄습니다.더 정확한 정규 표현식 패턴 수정하기

을 패턴에 포함시켜 일치 여부를 확인하는 방법이 있습니까?

+5

이 JSON입니까? 그렇다면, 데이터 부분을 잘라내서'json_decode()'하는 것을 고려 해보았습니까? –

+0

정규식에 새 접두어를 포함 시키려고 했습니까? – mario

+0

정규식 디버깅을 위해 http://weitz.de/regex-coach/를 확인해 보시기 바랍니다. 여기에는 Linux의 Wine에서 작동하는 몇 가지 매우 유용한 기능이 있습니다. – Treffynnon

답변

0

preg_match_all을 원하고 $matches[0]을 살펴보십시오. 귀하의 정규식은 다음과 같을 수도 있습니다 : #alertsystem\.notification\s*\=\s*\{.*?\}#is

괄호를 추가하여 특정 섹션을 캡처하십시오.

+0

정규 표현식의 여러 부분에'()'를 넣으려고했지만 전체 문자열을 반환 할 수만 있습니다. "메시지", "msgBody": "새 메시지 없음", "msgLink": ""' "메시지", "새 메시지 없음. "와" "."대신에 – sarsar

+0

은'{. *? \}'를 사용합니다. 그러면 'var_dump ($ matches);'를 사용하여 캡처 된 일치하는 부분을 볼 수 있습니다. 귀찮아서는 안돼 .... 오 기다려 .. 봐 .. 알았어 : $ matches [1]. http://uk2.php.net/manual/en/function.preg-match-all .php –