为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用正则表达式解析Java中的HTML?

如何使用正则表达式解析Java中的HTML?

慕盖茨4494581 2019-07-23 15:04:28
如何使用正则表达式解析Java中的HTML?有人可以告诉我一个简单的方法在Java中使用正则表达式在html文件中找到href和src标签吗?然后,如何获取与标记关联的URL?谢谢你的任何建议。
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

使用正则表达式从HTML中提取值总是一个错误。它可能首先出现的HTML语法要复杂得多,而且即使是非常复杂的正则表达式,页面也很容易识别出来。

请改用HTML Parser。另请参阅主要Java HTML解析器的优缺点是什么?


查看完整回答
反对 回复 2019-07-23
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

其他答案都是真的。Java Regex API不是实现目标的合适工具。使用其他答案中提到的高效,安全且经过良好测试的高级工具。

如果您的问题涉及Regex API而不是现实生活中的问题(例如学习目的) - 您可以使用以下代码执行此操作:

String html = "foo <a href='link1'>bar</a> baz <a href='link2'>qux</a> foo";Pattern p = Pattern.compile("<a href='(.*?)'>");Matcher m = p.matcher(html);while(m.find()) {
   System.out.println(m.group(0));
   System.out.println(m.group(1));}

输出是:

<a href='link1'>link1<a href='link2'>link2

请注意懒惰/不情愿的资格赛*?必须使用以减少分组到单个标记。组0是整个匹配,组1是下一组匹配(下一对括号)。


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 674 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信