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>/';