En Thu, 31 Jan 2008 01:01:30 -0200, Astan Chee <[EMAIL PROTECTED]> escribió:
> I have a html text stored as a string. Now I want to go through this > string and find all 6 digit numbers and make links from them. > Im using re.sub and for some reason its not picking up the previously > matched condition. Am I doing something wrong? This is what my code > looks like: > htmlStr = re.sub('(?P<id>\d{6})','<a > href=\"http://linky.com/(?P=id).html\">(?P=id)</a>',htmlStr) > It seems that it replaces it alright, but it replaces it literally. Am I > not escaping certain characters? Two errors: - use raw strings r"..." to write regular expressions (or quote every backslash...) - if you want to *substitute* a named group, the syntax is "\g<name>"; you have used the syntax to *match* a named group. re.sub(r'(?P<id>\d{6})',r'<a href="http://linky.com/\g<id>.html">\g<id></a>',htmlStr) In simple cases like this, may be easier to just use a number: re.sub(r'(\d{6})',r'<a href="http://linky.com/\1.html">\1</a>',htmlStr) -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list