【发布时间】:2015-04-18 09:50:22
【问题描述】:
我有这个任务:我必须读取一个 HTML 文件并将所有 <a> 标记与其所有属性匹配并打印出来。例如:对于标签:<a href="https://www.facebook.com" alt="Facebook icon" title="Facebook" target="_blank"></a>
待打印:
href - https://www.facebook.com
alt - Facebook icon
title - Facebook
target- _blank
text – not found
我有 正规表达式 的基本知识和从 java 中读取文件的零知识。有人可以就如何有效地做到这一点给我一些提示、建议和解释吗?
在我看来,将<a> 标记与所有属性和结束</a> 匹配的正则表达式可能是:
"\<[aA]\w\>\w\<\/[aA]\>*"
【问题讨论】:
-
你为什么不试试解析器?
-
您可能想看看这个问题及其最佳答案:stackoverflow.com/questions/1732348/…
-
不要为此使用正则表达式。使用 HTML 解析器(例如 jsoup)。
-
我必须使用正则表达式。练习正则表达式是一项功课。
-
把这个给你的老师看:stackoverflow.com/a/1732454/1393766 并询问真正应该使用正则表达式的任务。 HTML 和 regex 不是很好的组合,因为在 html 中,标签属性的顺序可以随时更改,而且属性值也不能保证用
"包围,我们也可以用'包围它,这使得潜在的 regex 更加复杂.对于解析 HTML,我们应该使用... parser.