PHP 正则匹配a标签

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

  

 

 

posted @ 2020-07-23 21:37  phpluo  阅读(1383)  评论(0)    收藏  举报