Re: Regular Expression Non Capturing Grouping Does Not Work.
> group != groups > > match.group() or match.group(0) gives you a special group that comprises the > whole match. Regular capturing groups start at index 1, and only those are > returned by match.groups(): > > >> re.match("(?:[abc])+", "abc").group() # one group > 'abc' > >>> re.match("(?:[abc])+", "abc").groups() # all capturing groups > > () > > Peter Aaargh! Should have caught that myself. Sorry for wasting all your time. Thank you Peter and Miles! (I am off to bed now. 4:10 am :) -- http://mail.python.org/mailman/listinfo/python-list
Re: Regular Expression Non Capturing Grouping Does Not Work.
Virtual Buddha wrote: > Hello all, > > I am having some difficulties with the non-capturing grouping in > python regular expression module. > > Even the code from the online documentation (http://docs.python.org/ > howto/regex.html#non-capturing-and-named-groups) does not seem to > work. > > As per the docs given in the link above this should happen (text > copied from the page): > m = re.match("([abc])+", "abc") m.groups() > ('c',) m = re.match("(?:[abc])+", "abc") m.groups() > () > > BUT, this is what I get: > m = re.match("([abc])+", "abc") m.group() > 'abc' m = re.match("(?:[abc])+", "abc") m.group() > 'abc' > > I am using python 2.6 on opensuse 11.1. Any one know what I might be > doing wrong? Or is this a bug? group != groups match.group() or match.group(0) gives you a special group that comprises the whole match. Regular capturing groups start at index 1, and only those are returned by match.groups(): >> re.match("(?:[abc])+", "abc").group() # one group 'abc' >>> re.match("(?:[abc])+", "abc").groups() # all capturing groups () Peter -- http://mail.python.org/mailman/listinfo/python-list
Re: Regular Expression Non Capturing Grouping Does Not Work.
On Jun 27, 2009, at 3:28 AM, Virtual Buddha wrote: Hello all, I am having some difficulties with the non-capturing grouping in python regular expression module. Even the code from the online documentation (http://docs.python.org/ howto/regex.html#non-capturing-and-named-groups) does not seem to work. ... Notice that you are calling .group() on the match object instead of .groups(). Without any arguments, .group() is equivalent to .group(0), which means "return the entire matching string." http://docs.python.org/library/re.html#re.MatchObject.group -Miles -- http://mail.python.org/mailman/listinfo/python-list