首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy Regex: Switch语句中的捕获组

Groovy Regex: Switch语句中的捕获组
EN

Stack Overflow用户
提问于 2012-10-17 23:10:25
回答 2查看 10.3K关注 0票数 29

给定以下Groovy代码切换语句:

代码语言:javascript
复制
def vehicleSelection = "Car Selected: Toyota"

switch (vehicleSelection) {
   case ~/Car Selected: (.*)/:

      println "The car model selected is "  + ??[0][1] 
}

有没有可能在不定义新的(def)变量的情况下提取单词"Toyota“?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-17 23:17:29

这可以使用Groovy添加到Matcher中的lastMatcher方法来实现:

代码语言:javascript
复制
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]}"
}
票数 40
EN

Stack Overflow用户

发布于 2013-12-15 11:14:48

构建在tim_yates答案上,这对我真的很有帮助:

如果你想在你的代码中避免一堆"Matcher.lastMatcher“,你可以创建一个助手函数作为一个别名。

代码语言:javascript
复制
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;
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12937499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档