Using sub re groups as arguments in functions
Published: Wednesday, Dec 26, 2007 Last modified: Thursday, Nov 14, 2024
Read this carefully:
http://www.python.org/doc/current/lib/node99.html#l2h-726
Especially about “dashrepl(matchobj)”.
Sub is definately one of those most useful ways to employ regular expressions. The dashrepl method described lets you play around with group matches as arguments. Very very useful. For example:
result = re.sub(r'\[(' +
fileurlpattern + '|' +
mailurlpattern + '|' +
newsurlpattern + ')\ (.+?)\]',
r'<a href="\1">\2</a>', result)
Focusing on last line. I wanted to use \2 as an argument in a function, like so:
r'<a href="\1">thumbgen(\2)</a>', result)
But of course it would never work, due to bad syntax. This is the correct syntax:
thumb.thumburl, result)
and in thumb.py :
def thumburl(matchobj):
print matchobj.group(0) # print all groups
thumbgen(matchobj.group(2)) # use that second group