我正在尝试替换正则表达式匹配中找到的每个角色,但我似乎无法使其发挥作用。
我有一个包含必须替换的括号表达式的字符串。
例如,foo bar (baz)
应该变为foo bar (***)
以下是我提出的问题:re.sub(r"(\(.*?).(.*?\))", r"\1*\2", "foo bar (baz)")
不幸的是,我似乎无法将替换应用于括号之间的每个字符。有没有办法让这项工作?
答案 0 :(得分:4)
这样的事情怎么样?
>>> import re
>>> s = 'foo bar (baz)'
>>> re.sub(r'(?<=\().*?(?=\))', lambda m: '*'*len(m.group()), s)
'foo bar (***)'