如何在段落之间提取字符串(给定特定字符)?

时间:2014-02-02 00:45:21

标签: java string

例如我有

  

...

     

段落

     

段落

     

段落

     

...

     

更多段落

如何将两个“..”之间的这3个句子提取成字符串? 数据来自文件。

好吧,我试图搜索“..”,然后在两者之间提取字符串。但它失败了,所以我没有发布我的任何代码......

3 个答案:

答案 0 :(得分:1)

如果您确定文本中不再出现..,并且您的文字为String,那么这可能是最简单的解决方案:

String result = text.substring(text.indexOf("..") + 2, text.lastIndexOf("..") - 2);

如果..出现更多,您可以使用正则表达式或Scanner。这是使用正则表达式的解决方案。

Pattern pattern = Pattern.compile(".*?\\.\\.(.*?)\\.\\.", Pattern.DOTALL);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
    String result = matcher.group(1);
    // ...
}

此代码假定第一个..开始一个段落,第二个..结束段落。在下一次出现..之前,将忽略以下字符。

答案 1 :(得分:0)

让程序搜索第一个“..”,同时循环它,保存所有内容,直到它到达第二个“..”。

答案 2 :(得分:0)

您是否可以尝试使分隔符对文本具有独特之处?如果您的文本中出现多次“..”,您打算如何指定要抓取哪个“..”?

如果你使它成为文本的独特之处,你可以使用String.split()方法,该方法将获取令牌并根据它分割字符串,从而可以轻松地在您指定的标记之间获取文本。