John Machin wrote:
To grab the text after the 2nd colon (if indeed there are two or more),
it's much simpler to do this:

import re
q = re.compile(r'.*?:.*?:(.*)').search
def grab(s):

... m = q(s) ... if m: ... print m.group(1) ... else: ... print 'not found!' ...

grab('')
not found!

grab('::::')
::

grab('a:b:yadda')
yadda

grab('a:b:c:d')
c:d

grab('a:b:')



Or without any regular expressions:

py> def grab(s):
...     try:
...         first, second, rest = s.split(':', 2)
...         print rest
...     except ValueError:
...         print 'not found!'
...
py> grab('')
not found!
py> grab('a:b:yadda')
yadda
py> grab('a:b:c:d')
c:d
py> grab('a:b:')

py>

To the OP: what is it you're trying to do? Often there is a much cleaner way to do it without regular expressions...

Steve
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to