java使用StringUtils的substringBetween()方法获取两个标记之间的文本
我有一个输入,比如:
<address>
<addressLine>280 Flinders Mall</addressLine>
<geoCodeGranularity>PROPERTY</geoCodeGranularity>
</address>
<address type="office">
<addressLine>IT Park</addressLine>
<geoCodeGranularity>office Space</geoCodeGranularity>
</address>
我想捕获地址标签之间的所有内容
我试过:
File file = new File("test.html");
String testHtml = FileUtils.readFileToString(file);
String title = StringUtils.substringBetween(testHtml, "<address>", "</address>");
这并不适用于所有情况,因为地址标记可能包含某些属性。请帮助如何获取此类字符串的文本
# 1 楼答案
通常,您应该而不是使用regex解析HTML/XML内容。相反,使用XPath之类的解析器。鉴于您似乎无法使用解析器,我们可以使用模式匹配器尝试以下选项:
这会发现样本数据中两个
<address>
标记的计数为198要使用
BufferedReader
进行此操作,您可能必须确保一次读入一个完整的<address>
标记# 2 楼答案
。。。。。。 算法一定是这样的。如果你看了文件
# 3 楼答案
您可以将文件转换为字符串,并可以确定所需子字符串的开始和结束索引,如下所示: