Java按句点分割段落

时间:2018-02-12 14:56:28

标签: java


我试图建立一个正则表达式,将句子分隔成句点(.)。这应该有效:

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

但是我需要添加最小的健壮性,例如检查句点后跟space和大写字母。 所以这是我的下一个猜测:

String text="The pen is on the table. The table has a pen upon it.";
String arr[] = text.split("\\. [A-Z]");

for (String s: arr)
    System.out.println(s);

Output:
The pen is on the table
he table has a pen upon it.

不幸的是,我错过了这段时间后的第一个角色。你能看到任何可以解决的方法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用lookahead查看字符串中接下来会发生什么。

text.split("\\. (?=[A-Z])");
{ "The pen is on the table", "The table has a pen upon it." }

如果你想保留句号,也可以使用lookbehind:

text.split("(?<=\\.) (?=[A-Z])");
{ "The pen is on the table.", "The table has a pen upon it." }