用正则奈何得到方针字符串中不在超链接中的所

我想用正则匹配得到不在超链接中的百度

如方针字符为:啊拉丝百度机的了深刻的<a href="http://www.baidu.com">阿隆索的肌肤百度了处所百度卡萨控</a>肌肤啊拉丝机的<a href="http://www.baidu.com" target="_blank">百度知道</a>爱龙卷风考四级处所sdjf百度sdlkj

其实就是为了不让百度呈此刻  <a>百度</a> 这个位置

有一个答复真的很妙: 百度(?![^<>]*?</a>)

简朴来说是每找到一个百度,用个(?!……)否认式向前看,和[^<>]

匹配条件1 : 前面直接碰着</a>的就不匹配,

匹配条件2 : 碰着 “<” 或 “>” 说明不是在<a>标签中

妙就妙在否认式再加一个否就是必定了,就是查找百度之后有<或>的就乐成匹配,有</a>不匹配

上一个PHP例子演示:

<?php $data = '<a href="http://www.baidu.com">阿隆索的肌肤百度了处所百度卡萨控</a>肌肤啊拉'; $search = '/百度(?![^<>]*?<\/a>)/i'; $rr = preg_match($search, $data); if($rr>0) { echo '百度不在a链接中'; }else { echo '百度在a链接中'; } ?>

end

附件下载/演示源码:
【 noina.htm 】 4.02KB

上一篇: 关于file_get_contents有时不能抓取到数据的问题   |   下一篇:MAC地点名目标正则匹配» 标签:

分享到: 更多

相关日志:

PHP验证身份证的正则表达式

编程语言中十六进制的正则匹配

将[code]标签内的所有<br/>替换成#号

PHP正则匹配6到16位字符构成,只可有数字、字母、下划线

如何用php正则去掉获得img标签中的 border属性

php如何将相对路径转换为绝对路径

php利用strip_tags的完整去除所有html标签

正则高级能力之三目运算

正反向预搜索(前后查察)初解

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7970.html