如何根据 ?, ! 分割文本 int 句子数组 和 。在 Java 中?
例如,我想将字符串中的句子存储到一个超大的数组中。myArray[0] = 第 1 句,myArray[1] = 第 2 句等等/
您可以使用String.split(regex)
方法,如下所示:
String[] sentendes = text.split("(?<=[.!?])\\s*");
使用lookbehind应该可以帮助您保留句后的标点符号。
这是一个关于 ideone的小演示。
试试这个正则表达式:
String[] myArray = "sentence! sentence. sentence?".split("(<=[\\!\\?\\.])\\s*")
解释:
(<= lookbehind, to preserve punctuation as in @dasblinkenlight's answer
[ start category (which would be !, ?, or .)
\\!\\?\\. punctuation (must be escaped)
] end category
) end lookbehind
\\s* any amount of whitespace