给出以下Groovy代码切换语句:
def vehicleSelection = "Car Selected: Toyota"
switch (vehicleSelection) {
case ~/Car Selected: (.*)/:
println "The car model selected is " + ??[0][1]
}
Run Code Online (Sandbox Code Playgroud)
是否可以在不定义new(def)变量的情况下提取"Toyota"一词?
tim*_*tes 34
这可以使用Groovy lastMatcher添加的方法Matcher:
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]}"
}
Run Code Online (Sandbox Code Playgroud)
建立在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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6712 次 |
| 最近记录: |