我如何捕捉所有重复的群体?
我希望为破折号分隔的所有字母设置一个匹配项。我期待看到3组,每组都有一封信。怎么了?我可以获得所有团体吗?
val matcher = java.util.regex.Pattern.compile("(?:(\\w)-?)+").matcher("a-b-c")
matcher.matches()
println(matcher.groupCount())
println(matcher.group(0))
println(matcher.group(1))
打印
1
a-b-c
c
我期待得到像
这样的东西3
a-b-c
a
答案 0 :(得分:0)
(\\w)(?=-|$)
试试这个。看看演示。
https://regex101.com/r/vD5iH9/14
你的正则表达式会捕获character
,前面有-
。所以前一个字符前面没有-
。另外在群组中,正则表达式引擎会记住最后一个组。所以你得到了c
。