Java 正则表达式 提取html超链接

<ahref="../asdocs/html_tutorials/humor02.html">这是一个链接</a>,要提取../asdocs/html_tutorials... <a href="../asdocs/html_tutorials/humor02.html">这是一个链接</a> ,要提取../asdocs/html_tutorials/humor02.html和 这是一个超链接,这两个东西,我的代码
<a\\shref=\"(http:.*[^>])\"*[^>]>(.*[^>])</a>,如果那一行只有这一个超链接,那是正确的,如果有多个,就错了,最好说明我哪错了,不然给出正确的也行
得到一个网站的源文件,按一行一行读取的
展开
 我来答
百度网友b4855c5
2011-11-07 · TA获得超过1071个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:954万
展开全部
你这个错就错在使用了.*
在正则里.*指的是匹配所有字符,而且是匹配优先,对于你这个正则来说到<a\\shref=\"(http:为止都是正常的,但后面的.*就会一直匹配到文件的最后,因为对于.*来说是匹配所有字符,所以后面的一切都是匹配的.匹配到最后结尾时,再来进行结尾检查,但你的正则是以</a>结尾的,不符合,所以就再回头向回一个个的查,一直查到(.*[^>])中的.*匹配.
好了,最后你这个表达式最终的结果其实就是匹配以<a\\shref=\"(http: 开头,以[^>])</a>结尾,中间是任意字符的表达式
百度网友ebcd94805
推荐于2018-03-28 · TA获得超过667个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:484万
展开全部
<a\\s.*?href=\"([^\"]+)\"[^>]*>(.*?)</a>

结果中 组1为连接地址 组2为文字
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JinCeon
2011-11-06 · TA获得超过695个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:408万
展开全部
正则表达式我不熟。
这类问题我更喜欢用javascript操作。
搜索所有的<a>标签,查找它的href属性和innerHTML
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式