Python正则表达式:替换匹配中的单个字符

时间:2014-01-07 10:44:16

标签: python regex

我正在尝试替换正则表达式匹配中找到的每个角色,但我似乎无法使其发挥作用。

我有一个包含必须替换的括号表达式的字符串。

例如,foo bar (baz)应该变为foo bar (***)

以下是我提出的问题:re.sub(r"(\(.*?).(.*?\))", r"\1*\2", "foo bar (baz)")不幸的是,我似乎无法将替换应用于括号之间的每个字符。有没有办法让这项工作?

1 个答案:

答案 0 :(得分:4)

这样的事情怎么样?

>>> import re
>>> s = 'foo bar (baz)'
>>> re.sub(r'(?<=\().*?(?=\))', lambda m: '*'*len(m.group()), s)
'foo bar (***)'