PHP匹配固定class鏈接的a標簽
使用修飾詞大寫的U轉換為非貪婪模式 要不然會從文中的第一個a標簽的開頭 匹配到最后一個a標簽的結尾
<?php $c = '/<a class="ke-insertfile".*\>.*<\/a>/U';
還可以直接使用非貪婪的正則.*?
<?php $c = '/<a class="ke-insertfile".*?\>.*?<\/a>/';
<?php $str = '<p>百度<a class="ke-insertfile" href="http://www.baidu.com/">百度</a>騰訊<a class="ke-insertfile" href="http://www.qq.com/">騰訊</a><a href="aaa">這個a標簽不要匹配</a></p><a>asdad</a>'; //$str = '<a class="ke-insertfile" href="http">aaa</a><a class="ke-insertfile" href="http">bbb</a><a class="ke-insertfile" href="http">ccc</a>'; $c = '/<a class="ke-insertfile".*\>.*<\/a>/U'; preg_match_all($c, $str, $matches); var_export($matches); // 預期的正確的結果 $arr = array('<a class="ke-insertfile" href="http://www.baidu.com/">百度</a>', '<a class="ke-insertfile" href="http://www.qq.com/">騰訊</a>'); var_export($arr);
匹配結果
如果不是使用貪婪模式的話結果是
<?php $c = '/<a class="ke-insertfile".*\>.*<\/a>/';