regex recursive matching (regex 2015.07.19)

Ben Bacarisse ben.usenet at bsb.me.uk
Tue Aug 18 23:55:48 CEST 2015


Neal Becker <ndbecker2 at gmail.com> writes:

> Trying regex 2015.07.19
>
> I'd like to match recursive parenthesized expressions, with groups such that
> '(a(b)c)'
>
> would give 
> group(0) -> '(a(b)c)'
> group(1) -> '(b)'
>
> but that's not what I get
>
> import regex
>
> #r = r'\((?>[^()]|(?R))*\)'
> r = r'\(([^()]|(?R))*\)'
> #r = r'\((?:[^()]|(?R))*\)'
> m = regex.match (r, '(a(b)c)')

The (?R) syntax is Perl -- it's no implemented in Python.  Python and
Perl regexs are very similar in syntax (for very good reasons) but
neither (?R) nor the numbered or named versions of it are in Python.

-- 
Ben.


More information about the Python-list mailing list