我试图建立一个正则表达式,将句子分隔成句点(.
)。这应该有效:
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.
不幸的是,我错过了这段时间后的第一个角色。你能看到任何可以解决的方法吗?
答案 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." }