【发布时间】:2019-10-14 14:33:11
【问题描述】:
我需要在 Java 中使用正则表达式拆分文本(每个子字符串将少于或接近 10 个字符(包括空格和特殊字符),并且不会拆分单词)。例如,“詹姆斯出去吃饭了。”将是“詹姆斯已经”、“出去”、“吃饭”、“。”。 提前致谢。
【问题讨论】:
-
你能分享一下你试过的东西吗?
-
我在 Guava 中尝试过 Splitter,例如 Splitter.on(regexp).trimResults().split(text)。对于正则表达式,我使用了类似“(\W|^)[\w.]{0,10} (\W|$)”的东西。我想这在逻辑上是不正确的。
-
您可以从以下方面获得一些灵感:stackoverflow.com/q/4398270/9192223
-
您必须确定子字符串部分的结束。如果我们确定 .和空格作为分隔符,那么你可以使用这种模式。 (.{0,10})(?:\s|\.) regex101.com/r/I1nrb6/1
-
@hiren 谢谢,有很多可能的方法来解决这个问题。但我想使用正则表达式。