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

  

猜你喜欢

转载自www.cnblogs.com/phpdaxue/p/13368919.html