m[0]
- первый объект соответствия.
m[0][0]
- это все, что соответствует этому совпадению.
m[0][1]
- первый захват в этом матче.
m[0][2]
- второй захват в этом матче.
На основании того, что я прочитал (я не программирую на Groovy или у меня нет копии), учитывая
def m = "barbaz" =~ /(ba)([rz])/;
m[0][0]
будет "bar"
m[0][1]
будет "ba"
m[0][2]
будет "r"
m[1][0]
будет "baz"
m[1][1]
будет "ba"
m[1][2]
будет "z"
Я не мог стоять, не зная, был ли я прав или нет, поэтому я скачал groovy и написал пример:
def m = "barbaz" =~ /(ba)([rz])/;
println "m[0][0] " + m[0][0]
println "m[0][1] " + m[0][1]
println "m[0][2] " + m[0][2]
println "m[1][0] " + m[1][0]
println "m[1][1] " + m[1][1]
println "m[1][2] " + m[1][2]