regexp qns

eight02645999 at yahoo.com eight02645999 at yahoo.com
Sat Jan 20 00:09:53 EST 2007


James Stroud wrote:
> eight02645999 at yahoo.com wrote:
> > hi
> > suppose i have a string like
> >
> > test1?test2t-test3*test4*test5$test6#test7*test8
> >
> > how can i construct the regexp to get test3*test4*test5 and
> > test7*test8, ie, i want to match * and the words before and after?
> > thanks
> >
>
>
> py> import re
> py> s = 'test1?test2t-test3*test4*test5$test6#test7*test8'
> py> r = re.compile(r'(test\d(?:\*test\d)+)')
> py> r.findall(s)
> ['test3*test4*test5', 'test7*test8']
>
> James

thanks !
I check the regexp doc it says:
"""
(?:...)
    A non-grouping version of regular parentheses. Matches whatever
regular expression is inside the parentheses, but the substring matched
by the group cannot be retrieved after performing a match or referenced
later in the pattern.
"""
but i could not understand this : r'(test\d(?:\*test\d)+)'. which
parenthesis is it referring to? Sorry, could you explain the solution ?
thanks




More information about the Python-list mailing list