Java在句号空格中分裂句子?

时间:2014-03-29 17:40:27

标签: java regex punctuation

我需要将文本文件拆分成单个句子,但此刻它还会分割小数点。我如何在有一个完整的停止点然后空白处分开。

3 个答案:

答案 0 :(得分:1)

如果您希望在分割后在结果中包含.,则可以尝试在每个空格(\\s)之前进行拆分,该空格在其前面有句号[.]

yourString.split("(?<=[.])\\s+");

样本

for (String s:"ab. cd 1.3 ef. gh".split("(?<=[.])\\s+"))
    System.out.println(s);

输出:

ab.
cd 1.3 ef.
gh

如果您不想在结果中加入.,请跳过look-behind mechanism并使用[.]\\s+

答案 1 :(得分:0)

将此正则表达式用于拆分,以便它不会在数字之间选择任何内容。这个正则表达式意味着一个完整的句号后面没有数字。

\\.(?!\\d)

示例:

String line = "this a. sample 100.100 test.line.";
String []sentences = line.trim().split("\\.(?!\\d)");

输出:

this a
 sample 100.100 test
line

您可能希望通过在拆分周围添加可选的\\s*来改善这一点。

答案 2 :(得分:0)

String parts[] = str.split("\\. " ); 

应该有效