Groovy 模式匹配自动添加锚标签?

Groovy pattern matching automatically adding anchor tags?

我正在尝试在 switch 语句中进行一些模式匹配,似乎会自动添加 start/end 锚标记 -

String s = "abc";

switch(s){
  case ~/b/:
    ....//doesn't trigger
    break;
  case ~/abc/:
    ....//does trigger
    break;
}

有没有办法在不添加 .* 的情况下使部分匹配工作?

是的,switch 正在检查字符串是否完全匹配。所以,你可以给它传递一个闭包。

switch(s) {
  case { it =~ /b/ }:
    // do something
    break;
  case ~/abc/:
    // do something
    break;
}

Ideone Demo