我有这个代码,它将接收HTML文件,获取所有打开的HTML标记,然后打印它们。我想知道是否有办法在此代码中包含结束标记。所以现在它打印出来:
<html>
<head>
<title>
<body>
<table>
<p>
<a>
<p>
etc. etc.
我也希望用封闭标签进行打印。
<p>
<a>
</a>
</p>
这是我到目前为止的代码:
try {
BufferedReader in = new BufferedReader(new FileReader("test.html"));
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = in.readLine()) != null) {
stringBuilder.append(line);
}
String pageContent = stringBuilder.toString();
Pattern pattern = Pattern.compile("<(?!!)(?!/)\\s*([a-zA-Z0-9]+)(.*?)>");
Matcher matcher = pattern.matcher(pageContent);
while (matcher.find()) {
String tagName = matcher.group(1);
System.out.println("<" + tagName + ">");
}
in.close();
}
编辑:有没有办法不使用像Jsoup这样的外部库? 编辑2:我将我的Pattern.compile改为this-&gt; &LT; |(?*)([A-ZA-Z0-9] + / [A-ZA-Z0-9] +)&GT;它起作用了。感谢。