【发布时间】:2018-06-08 01:23:17
【问题描述】:
我有一个 html 作为字符串。我想用正则表达式找到每个表格元素(打开-关闭标签)。我为此尝试了<table(.*?)>.*</table> 模式。但它不起作用,因为它匹配第一个表打开标记和最后一个表关闭标记之间的内容。
这是我的代码:
Pattern pattern = Pattern.compile("<table(.*?)>.*</table>");
我也试过了:
Pattern pattern = Pattern.compile("<table(.*?)>.*</table>",Pattern.DOTALL);
这是一个例子:
<table id="table1">
</table>
<table id="table2">
<table id="table3">
</table>
</table>
我的模式找到了<table id="table1">打开标签和table2的关闭标签之间的所有元素。
但我希望它匹配每个带有标签的表格元素。例如:table1的开闭标签,table2的开闭标签..
感谢您的回答。
【问题讨论】:
-
使用正则表达式解析 HTML 被认为是不好的做法。您应该改用复杂的 HTML 解析器。见Using regular expressions to parse HTML: why not?