我有一个html作为字符串。我想用正则表达式找到每个表格元素(开关标签)。我尝试了<table(.*?)>.*</table>
模式。但它不起作用,因为它匹配第一个表格打开标签和最后一个表格关闭标签之间的东西。在java中使用正则表达式在html中查找每个表格元素
这里是我的代码:
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解析器。请参阅[使用正则表达式来解析HTML:为什么不?](https://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not) – vanje