Regex Groovy模式匹配自动添加锚定标记?

Regex Groovy模式匹配自动添加锚定标记?,regex,groovy,switch-statement,Regex,Groovy,Switch Statement,我试图在一个switch语句中进行一些模式匹配,似乎开始/结束锚定标记正在自动添加- String s = "abc"; switch(s){ case ~/b/: ....//doesn't trigger break; case ~/abc/: ....//does trigger break; } 我是否可以在不添加*s的情况下使部分匹配生效?是的,开关正在检查字符串的完全匹配。所以,你可以给它传递一个闭包 switch(s) { case

我试图在一个
switch
语句中进行一些模式匹配,似乎开始/结束锚定标记正在自动添加-

String s = "abc";

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

我是否可以在不添加
*
s的情况下使部分匹配生效?

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

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

这有点傻。。。当
开关
评估模式匹配(
==
)而不是字符串包含时,应与
~/\wb\w/
~/\w+b\w+//code>匹配。