【发布时间】:2017-01-06 17:19:38
【问题描述】:
我需要提取字符串中特定字符之前的所有单词,在本例中为冒号 (:)。
例如:
String temp = "root/naming-will-look-like-this:1.0.0-SNAP";
从上面的字符串我想返回:
“根”“命名”“将”“看起来”“喜欢”“这个”
我不擅长正则表达式,到目前为止我已经想出了这个。
\w+(?=:)
只返回冒号前面的一个单词(“this”)。
如何检索之前的所有单词?
提前致谢。
【问题讨论】:
-
请告诉我们您对“单词”的定义。仅包含 A 到 Z、不区分大小写的任何内容?
-
是的,任何 a-z,不区分大小写。我希望它们被提取为“单词而不是单个字符”。即“root”而不是“r”、“o”、“o”、“t”。
-
由于单个匹配操作无法为您提供多个结果,因此您必须更具体地了解您打算如何收集结果。即,您可以使用
split创建一个数组(然后您需要分隔符模式)或在Matcher上重复调用find()(然后您需要单词模式)......如果你想要一个数组,你可以做到在单个操作中,例如String[] array = temp.split("\\W*:.*|\\W+");