2014-03-29 68 views
-1

我需要将文本文件分割成单独的句子,但此刻它还会分割小数点。我如何分裂,然后是空格,然后是空格。Java在句号空白处分割句子?

+1

用正则表达式:'“\\。\ s”'但是这是用于任何空格。如果你需要一个特定的空格,用适当的字符替换'\ s'。 – AntonH

+1

那么,刚刚分裂点,然后空间?似乎你不需要一个正则表达式。 – Jerry

+0

然后分割所有空格,这意味着你不能分割完整的句子 – user3476314

回答

0

将此正则表达式应用到分割中,以便它在数字之间不会选取任何东西。这个正则表达式意味着一个没有数字后面的句号。

\\.(?!\\d) 

例子:

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

输出:通过增加可选\\s*周围劈叉

this a 
sample 100.100 test 
line 

您可能希望改善这一点。

+0

使用'“\\。[^ 0-9]”'有什么真正的区别吗? – AntonH

+0

@AntonH是的。使用你的正则表达式,它将从下面的示例'sample.X test'中删除'.X'。 –

+0

好吧,很高兴知道。 – AntonH

1

如果你想在分割后的结果中包括.,你可以尝试在每个空格上分割(\\s),在它之前有[.]

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

DEMO

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+

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

应该工作

+0

没有工作,在任何空白分裂然后意味着每个字然后被视为一个句子 – user3476314

+0

这对我有用。你把它粘贴正确了吗? –

+0

当然没有,但不起作用 – user3476314