Regular expression with variable number of groups?

According to the documentation, Java regular expressions can’t do this:

The captured input associated with a
group is always the subsequence that
the group most recently matched. If a
group is evaluated a second time
because of quantification then its
previously-captured value, if any,
will be retained if the second
evaluation fails. Matching the string
“aba” against the expression (a(b)?)+,
for example, leaves group two set to
“b”. All captured input is discarded
at the beginning of each match.

(emphasis added)

Leave a Comment