Groovy编译错误:意外令牌

时间:2014-12-19 01:21:13

标签: groovy

assert 'c' ==~ (?i:[^c].*)

groovy控制台输出:

groovy> assert 'c' ==~ (?i:[^c-d].*); 
                         ^

1编译错误: 意外的标记: ? at line:1,column:17

为什么我在这里获得未经检测的令牌?​​

2 个答案:

答案 0 :(得分:2)

你需要在paren之前逃跑......而且你不需要在不区分大小写的修饰符之后使用冒号。 (?i)很好。但是,要知道你的断言永远是“假的”。因为不区分大小写的c将永远不会匹配否定范围[^ c-d]。

assert 'c' ==~ /(?i)([^c-d].*)/

答案 1 :(得分:0)

假设您正在尝试构建的正则表达式是"任何字符串以不在C到D范围内的任何字符开头(不区分大小写)",那么您的": "应该是")(":

(?i)([^c-d].*)

(?i)是"不区分大小写"的匹配标记。