groovy 开关是否可以使用String.contains?

inb24sb2  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(260)

我试着让这个工作,但它似乎没有被接受。有什么修复,或解决办法吗?

switch(email){
    case (email.contains('acceptall')):
        log.info email
        break
    default:
        log.info "Doesn't work!"    
}

我在SoapUI中使用Groovy作为脚本

col17t5w

col17t5w1#

使用正则表达式,大致如下:

switch (email) {
  case ~/.*acceptall.*/:
    log.info(email)
    break;
  default:
    log.info("Doesn't work!")
}

http://groovy.codehaus.org/Logical+Branching#LogicalBranching-switchstatement
开关支持以下类型的比较

  • 如果switchValue是类的示例,则类case值匹配
  • 正则表达式case值匹配,如果开关的字符串
  • 值匹配regex集合大小写值匹配如果开关
  • 值包含在集合中。这也包括范围(因为它们是列表)
  • 如果不使用上述任何一项,则case值与switch值匹配
mfpqipee

mfpqipee2#

你几乎做对了,只需要把它变成一个结束语。

switch (email) {
  case { it.contains('acceptall') }:
    log.info(email)
    break;
  default:
    log.info("Doesn't work!")
}

相关问题