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不用擔心,花了我一會兒,看看它出錯了;-) –