Java 使用JSoup解析两个不同标记之间的文本
我有下面的HTMLJava 使用JSoup解析两个不同标记之间的文本,java,regex,jsoup,Java,Regex,Jsoup,我有下面的HTML <h3 class="number"> <span class="navigation"> 6:55 <a href="/results/result.html" class="under"><b>»</b></a> </span>**This is the text I need to parse!**</h3> 不幸的是,这给了我标签上的所有东西 6:55
<h3 class="number">
<span class="navigation">
6:55 <a href="/results/result.html" class="under"><b>»</b></a>
</span>**This is the text I need to parse!**</h3>
不幸的是,这给了我标签上的所有东西
6:55 » This is the text I need to parse!
我可以使用Jsoup在不同的标记之间进行解析吗?是否有这样做的最佳实践(regex?)
(正则表达式?)
不,正如您在的答案中所看到的,您不能使用正则表达式解析HTML
试试这个:
Element h3 = doc.select("h3").get(0);
String h3Text = h3.text();
String spanText = h3.select("span").get(0).text();
String textBetweenSpanEndAndH3End = h3Text.replace(spanText, "");
(正则表达式?)
不,正如您在的答案中所看到的,您不能使用正则表达式解析HTML
试试这个:
Element h3 = doc.select("h3").get(0);
String h3Text = h3.text();
String spanText = h3.select("span").get(0).text();
String textBetweenSpanEndAndH3End = h3Text.replace(spanText, "");
不,JSoup不是为这个设计的。它应该解析一些层次化的东西。搜索介于结束标记和开始标记之间的文本,或者以其他方式搜索,对JSoup来说没有任何意义。这就是正则表达式的用途
但是,在使用正则表达式对字符串进行射击之前,您当然应该首先使用JSoup尽可能地缩小范围。不,JSoup不是为此而设计的。它应该解析一些层次化的东西。搜索介于结束标记和开始标记之间的文本,或者以其他方式搜索,对JSoup来说没有任何意义。这就是正则表达式的用途
但是,在使用正则表达式对字符串进行处理之前,您当然应该首先使用JSoup尽可能缩小范围。我需要更清楚一些,我希望得到介于-**这是我需要解析的文本!**JSoup不让我得到这个。我需要更清楚一点,我想得到-**这是我需要解析的文本!**JSoup不让我得到这个。