【发布时间】:2015-02-06 12:56:52
【问题描述】:
我有这段代码,它将接收一个 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-> 并且它有效。谢谢。
【问题讨论】:
-
听起来像是 jsoup 的工作
-
您无法通过尝试parse html using regex来捕获每个有效案例