我正在尝试解析这样一个字符串:
<@Something> there is some regular text <@something_else> and even more <@foo> <@bar> text
将所有<@tokens>
替换为md5总和。
是否可以使用python re.sub?如何将@token
传递给函数并将函数的输出传递给re.sub
?
到目前为止,我尝试过最简单的方法:
import re
def fun(str):
return str.replace('@', '!')
pattern = r'(<@\w+>)'
string = '<@AAAA> some text and more text <@BBBBB>'
print fun('<@AAAA>')
print string
print re.sub(pattern, fun(r'\1'), string)
没有成功。 fun函数在re.sub()之外按预期工作,但不在其中。
答案 0 :(得分:1)
是的,正如the documentation所示,&#34;替换&#34; re.sub()
的参数可以是一个获取匹配对象并返回替换的函数。
答案 1 :(得分:1)