The string looks like this "[xx],[xx],[xx]" Where xx is a ploygon like this "(1.0,2.3),(2.0,3)...
Basically, we are looking for a way to get the string between each pair of square brackets into an array.
E.g. String source = "[hello],[1,2],[(1,2),(2,4)]"
would result in an object a such that:
a[0] == 'hello'
a[1] == '1,2'
a[2] == '(1,2),(2,4)'
We have tried various strategies, including using groovy regex:
def p = "[12],[34]"
def points = p =~ /(\[([^\[]*)\])*/
println points[0][2] // yields 12
However,this yields the following 2 dim array:
[[12], [12], 12]
[, null, null]
[[34], [34], 34]
so if we took the 3rd item from every even rows we would be ok, but this does look very correct. We are not talking into account the ',' and we are not sure why we are getting "[12]" twice, when it should be zero times?
Any regex experts out there?
nulls and 3 matches) and the regex has 2 capturing groups (thus, you have 3 groups all in all - thus, you have 3 elements in each match). You must be looking for\[([^\[]*)], right? Or do you want to just get rid of a capturing group altogether with(?<=\[)[^\[\]]*(source =~ /(?:\[([^\]]*)\])*/)*.getAt(1).findAll()