将Java字符串按单词、逗号和句号分割

5
我一直使用myString.split("\\s+");来获取每个单词。但现在我也想将逗号和句号分开。例如:

妈妈常说,人生就像一盒巧克力,你永远不知道你会得到什么。

变成:

{Mama, always, said, life, was, like, a, box, of, chocolates ,,, You, never, know, what, you're, gonna, get,.,}

如何实现这一点?
2个回答

12
如果逗号和句号总是后跟空格或字符串结尾,则可以这样写:

如果逗号和句号总是后跟空格或字符串结尾,则可以这样写:

myString.split("(?=[,.])|\\s+");

如果它们不是这样的,而你想将例如a,b拆分成三个字符串,则:

myString.split("(?<=[,.])|(?=[,.])|\\s+");

2

您可以使用前瞻来在点和逗号之前进行分割:

myString.split("\\s+|(?=[,.])");

预查不包含在实际匹配中,因此实际字符(逗号或句号)将出现在结果数组中。


@JackBilbo 嗯,这是同样的解决方案。但是请继续接受ruakh的答案,因为他的第二个解决方案还可以处理逗号或句号后没有空格的情况。 - Martin Ender

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接