PHP 正则匹配A标签获得连接和文字

<FONTSIZE=2><ahref=/ztg/51678.nsf/0/8DEAD765CF54DA1948257FD4003A9618/$file/公示.xls><im... <FONT SIZE=2><a href=/ztg/51678.nsf/0/8DEAD765CF54DA1948257FD4003A9618/$file/公示.xls><img src=http://10.1.5.25:180/icons/vwicn005.gif border=0>文件1</a>

数据如上,匹配数据中所有的A标签得到全部的文字和连接,如“文件1”,“/ztg/51678.nsf/0/8DEAD765CF54DA1948257FD4003A9618/$file/公示.xls”
展开
 我来答
绯弹亚丝娜
2016-06-20 · TA获得超过1094个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:134万
展开全部
<a\b[^>]*\bhref=([^\s>]+)[^>]*>[\s\S]*?([^<>]*)</a>

解释:
<a\b #匹配a标签的开始
[^>]* #匹配a标签href属性前的其他属性
\bhref=([^\s>]+) #匹配href属性,并将匹配到的内容捕获到分组1当中
[^>]*> #匹配a标签的结束
[\s\S]*? #匹配a标签文本前的img标签
([^<>]*) #匹配a标签文本并捕获到分组2当中
</a> #匹配a标签的关闭

分组1和分组2即为所需内容

简化版:
<a\s*href=([^>]+)><img[^>]+>([^>]+)</a>
实际上简化版可能效率更高……因为严格按照原文本格式来匹配。
不过如果标签形式有一点变化就可能导致匹配失败,所以这里写了两个版本。。
更多追问追答
追问
preg_match_all(']+)>]+>([^>]+)',$str,$array);
是这样吗,返回为空
追答
php正则两边要加/
preg_match_all('/]+)>]+>([^>]+)/',$str,$array);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式