给定以下Groovy代码切换语句:
def vehicleSelection = "Car Selected: Toyota"
switch (vehicleSelection) {
case ~/Car Selected: (.*)/:
println "The car model selected is " + ??[0][1]
}有没有可能在不定义新的(def)变量的情况下提取单词"Toyota“?
发布于 2012-10-17 23:17:29
这可以使用Groovy添加到Matcher中的lastMatcher方法来实现:
import java.util.regex.Matcher
def vehicleSelection = 'Car Selected: Toyota'
switch( vehicleSelection ) {
case ~/Car Selected: (.*)/:
println "The car model selected is ${Matcher.lastMatcher[0][1]}"
}发布于 2013-12-15 11:14:48
构建在tim_yates答案上,这对我真的很有帮助:
如果你想在你的代码中避免一堆"Matcher.lastMatcher“,你可以创建一个助手函数作为一个别名。
import java.util.regex.Matcher
static Matcher getm()
{
Matcher.lastMatcher
}
def vehicleSelection = 'Car Selected: Toyota'
switch( vehicleSelection ) {
case ~/Car Selected: (.*)/:
println "The car model selected is ${m[0][1]}"
break;
}https://stackoverflow.com/questions/12937499
复制相似问题