Groovy での正規表現の文書化の例に従おうとしていますが、自分の例を機能させることができません。regex1 では失敗するが、圧縮された regex2 では機能する例を次に示します。
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)
して文字列の先頭に追加すると、同じように失敗します。
この場合、拡張パターンを追加するための正しい構文は何ですか? リンクされたサイトの例はうまく機能するので、それが可能であることはわかっています。