regex - Python re.sub question -
greetings all,
i'm not sure if possible i'd use matched groups in regex substitution call variables.
a = 'foo' b = 'bar'  text = 'find replacement me [[:a:]] , [[:b:]]'  desired_output = 'find replacement me foo , bar'  re.sub('\[\[:(.+):\]\]',group(1),text) #is not valid re.sub('\[\[:(.+):\]\]','\1',text) #replaces value 'a' or 'b', not var value   thoughts?
you can specify callback when using re.sub, has access groups: http://docs.python.org/library/re.html#text-munging
a = 'foo' b = 'bar'  text = 'find replacement me [[:a:]] , [[:b:]]'  desired_output = 'find replacement me foo , bar'  def repl(m):     contents = m.group(1)     if contents == 'a':         return     if contents == 'b':         return b  print re.sub('\[\[:(.+?):\]\]', repl, text)   also notice ? in regular expression. want non-greedy matching here.
i understand sample code illustrate concept, example gave, simple string formatting better.
Comments
Post a Comment