【发布时间】:2014-06-06 05:16:54
【问题描述】:
我想获取包含特定关键字的文本文件中的句子。我尝试了很多但无法获得包含关键字的正确句子......如果其中任何一个与段落匹配,那么我有更多的一组关键字,那么应该采用它。 例如:如果我的文本文件包含抢劫、抢劫等单词,则应提取该句子。下面是我尝试过的代码。无论如何使用正则表达式来解决这个问题。任何帮助将不胜感激。
BufferedReader br1 = new BufferedReader(new FileReader("/home/pgrms/Documents/test/one.txt"));
String str="";
while(br1 .ready())
{
str+=br1 .readLine() +"\n";
}
Pattern re = Pattern.compile("[^.!?\\s][^.!?]*(?:[.!?](?!['\"]?\\s|$)[^.!?]*)*[.!?]?['\"]?(?=\\s|$)", Pattern.MULTILINE | Pattern.COMMENTS);
Matcher match = re.matcher(str);
String sentenceString="";
while (match .find())
{
sentenceString=match.group(0);
System.out.println(sentenceString);
}
【问题讨论】:
-
如何定义“句子”?是否有任何
String在其末尾有一个换行符定义为“句子”或是否有其他标准? -
@MadProgrammer str 是一个字符串,其中包含有关抢劫的全部新闻
-
那么你如何区分句子呢?
-
@MadProgrammer 我已经编辑了我的代码,上面的代码将段落拆分成句子