3
我试图按照Documenting Regular Expressions in Groovy的示例进行操作,但无法获得我自己的示例。下面是对regex1的失败的例子,但适用于压缩regex2Groovy扩展正则表达式语法
def line = "some.key=a value # with comment that is ignored"
def regex1 = '''(?x) # enable extended patterns
^\\s* # ignore starting whitespace
([^=#]+) # capture key
= # literal
([^#]*) # capture value'''
def regex2 = '''^\\s*([^=#]+)=([^#]*)'''
def pattern = ~regex1
def matcher = pattern.matcher(line)
for (i=0; i < matcher.getCount(); i++) {
println matcher[i][0]
println matcher[i][1]
println matcher[i][2]
}
我得到的错误是
Caught: java.util.regex.PatternSyntaxException: Unclosed character class near index 217`
它指向的最后一场比赛,最终收盘括号。
如果我更改regex2并将(?x)
添加到字符串的开头,它也以相同的方式失败。
在这种情况下添加扩展模式的正确语法是什么?链接网站上的示例工作正常,所以我知道它应该是可能的。
不知道美元slashy条GS。大! – Ayman
铢,当然。谢谢,看不到树木。太棒的小提示也不错。 –
@MarkFisher不用担心,花了我一会儿,看看它出错了;-) –