On Sun, Aug 2, 2009 at 2:55 PM, gpo<goodpotat...@yahoo.com> wrote: > > Python: > line='>Checking Privilege for UserId: > {874BE70A-194B-DE11-BE5C-000C297901A5}, PrivilegeId: {prvReadSdkMessage}. > Returned hr = 0' > (re.search('(\w+)\:.+.{8}-.{4}-.{4}-.{4}-.{12}',line)).group(0) > RESULT > 'UserId: {874BE70A-194B-DE11-BE5C-000C297901A5' > > How/Why are these results different? What is Python doing differently in > regex, that I need to adjust to?
The group(0) method returns the entire portion of the string that matched your regex. Group(1) gives you what you want -- the portion that matched the first parenthesized capture group: >>> import re >>> line='>Checking Privilege for UserId: >>> {874BE70A-194B-DE11-BE5C-000C297901A5}, PrivilegeId: {prvReadSdkMessage}. >>> Returned hr = 0' >>> (re.search('(\w+)\:.+.{8}-.{4}-.{4}-.{4}-.{12}',line)).group(0) 'UserId: {874BE70A-194B-DE11-BE5C-000C297901A5' >>> (re.search('(\w+)\:.+.{8}-.{4}-.{4}-.{4}-.{12}',line)).group(1) 'UserId' >>> The section of the docs on the group method of MatchObjects may be helpful: http://docs.python.org/library/re.html#re.MatchObject.group -- Jerry _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor