2014-03-29 94 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