Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JSoup解析两个不同标记之间的文本_Java_Regex_Jsoup - Fatal编程技术网

Java 使用JSoup解析两个不同标记之间的文本

Java 使用JSoup解析两个不同标记之间的文本,java,regex,jsoup,Java,Regex,Jsoup,我有下面的HTML <h3 class="number"> <span class="navigation"> 6:55 <a href="/results/result.html" class="under"><b>&raquo;</b></a> </span>**This is the text I need to parse!**</h3> 不幸的是,这给了我标签上的所有东西 6:55

我有下面的HTML

<h3 class="number">
<span class="navigation">
6:55 <a href="/results/result.html" class="under"><b>&raquo;</b></a>
</span>**This is the text I need to parse!**</h3>
不幸的是,这给了我标签上的所有东西

6:55 &raquo; 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不让我得到这个。