demo:
$html='';preg_match_all('/(.*?)<\/div>/', $html, $out);var_dump($out);
目標字串$html,希望匹配,發現最後輸出的$out是一直是empty,如何才能正確的匹配所有的結果,求正則高手指點
找到答案之後的補充說明:
利用爬蟲從網路上擷取到的dom結構,裡面有很多的空格和換行,如果想把目標html匹配出來,Regex後面需要添加模式修正符號
preg_match_all('/(.*?)<\/div>/is', $html, $out);
/i 忽略大小寫
/s 將字串視為單行,分行符號作為一般字元;
回複內容:
demo:
$html='';preg_match_all('/(.*?)<\/div>/', $html, $out);var_dump($out);
目標字串$html,希望匹配,發現最後輸出的$out是一直是empty,如何才能正確的匹配所有的結果,求正則高手指點
找到答案之後的補充說明:
利用爬蟲從網路上擷取到的dom結構,裡面有很多的空格和換行,如果想把目標html匹配出來,Regex後面需要添加模式修正符號
preg_match_all('/(.*?)<\/div>/is', $html, $out);
/i 忽略大小寫
/s 將字串視為單行,分行符號作為一般字元;
$html='';preg_match_all('/(.*?)<\/div>/is', $html, $out);var_dump($out);
輸出:
array(2) { [0]=> array(2) { [0]=> string(39) "" [1]=> string(39) "" } [1]=> array(2) { [0]=> string(14) "" [1]=> string(14) "" }}
要我怎麼說呢,你的 $html 裡面的 \/ 應該 /,並且 ' 沒有轉義為 \'
我運行通不過,你知道麼,是你文法問題,還是正則的問題?
答案在$html定義哪裡。
-號需要轉義