给出以下Groovy代码切换语句:
def vehicleSelection = "Car Selected: Toyota"
switch (vehicleSelection) {
case ~/Car Selected: (.*)/:
println "The car model selected is " + ??[0][1]
}
是否可以在没有定义新(def
)变量的情况下提取“Toyota”这个词?
答案 0 :(得分:33)
使用Groovy添加到lastMatcher
的{{1}}方法可以实现这一点:
Matcher
答案 1 :(得分:5)
在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;
}