Groovy编译错误:意外标记

Groovy编译错误:意外标记,groovy,Groovy,groovy控制台输出: assert 'c' ==~ (?i:[^c].*) 1编译错误: 意外标记:?在第1行第17列 为什么我在这里得到了一个未被拒绝的代币?你需要在帕伦之前逃走。。。而且不需要在不区分大小写的修饰符后面加冒号。(?i)很好。但是,要知道,您的断言总是“错误的”,因为不区分大小写的c永远不会与否定范围[^c-d]匹配 groovy> assert 'c' ==~ (?i:[^c-d].*); ^ 假设您试图构建的

groovy控制台输出:

assert 'c' ==~ (?i:[^c].*)
1编译错误: 意外标记:?在第1行第17列


为什么我在这里得到了一个未被拒绝的代币?

你需要在帕伦之前逃走。。。而且不需要在不区分大小写的修饰符后面加冒号。(?i)很好。但是,要知道,您的断言总是“错误的”,因为不区分大小写的c永远不会与否定范围[^c-d]匹配

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

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


(?i)
是“不区分大小写”的匹配标志。

我添加了一个“^”突出显示第17列。你能检查一下我是否把它放在了正确的位置吗?以防出现剪切粘贴错误。这不是一个斜体引号,而不是转义吗?不确定…可能是…我的groovy有点…不确定。谢谢你Eddie B的工作。有趣的是,我在断言“c”==~(?I[^c].*)之前就有这样的工作了这同样有效/(?i:[^c].*)/我想在groovy控制台中运行时需要添加斜杠。我想知道OP是否知道这是“错误的”…“c”永远不匹配(?i)[^c-d]断言这一点会失败,我知道,但这是您想要的。在这个问题上没有要求它应该通过。
assert 'c' ==~ /(?i)([^c-d].*)/
(?i)([^c-d].*)