Genotypek
Genotypek

Reputation: 213

Regex for matching arrays of values or another arrays

I'm trying to create a regex which will capture whole array of any objects inside it.

I've got example input string:

[2020-05-29T10:00:00, 12.5, 'Test text'][][[], ['Some Data']][['String with[ \'escaped quote][ and parenthesis inside it']]

Expected matches are:

Match 1: [2020-05-29T10:00:00, 12.5, 'Test text']
Match 2: []
Match 3: [[], ['Some Data']]
Match 4: [['String with[ \'escaped quote][ and parenthesis inside it']] // If this one is possible it's brilliant

Regex which I've already created is: \[[a-zA-Z0-9\-,' :\.\[]*\], but it doesn't handle array of arrays and parenthesis inside strings.

I would be really grateful for you help!

Upvotes: 1

Views: 230

Answers (1)

Brett
Brett

Reputation: 1550

This is similar to the question Regex nested parentheses - you should look at the accepted answer for a great explanation of what's going on.

The regex you want is, I believe:

\[(?>'(?:[^'\\]|\\.)*'|\[(?<DEPTH>)|\](?<-DEPTH>)|'(?:[^'\\]|\\.)*'|[^\[\]]+)*\](?(DEPTH)(?!))

Upvotes: 1

Related Questions