我想做的是在给定的文本中进行特定的替换。例如,'<' 应更改为 '[','>' 应更改为 ']',等等。它类似于此处给出的解决方案: 如何在 python 中使用正则表达式进行多次替换?,即
import re
def multiple_replace(dict, text):
# Create a regular expression from the dictionary keys
regex = re.compile("(%s)" % "|".join(map(re.escape, dict.keys())))
# For each match, look-up corresponding value in dictionary
return regex.sub(lambda mo: dict[mo.string[mo.start():mo.end()]], text)
现在,问题是我还想替换正则表达式匹配的模式。例如,我想用“foo”替换“fo.+”,用“bar”替换“ba[rz]*”。
删除地图(代码中的 re.escape 有帮助,以便正则表达式实际匹配,但随后我收到关键错误,因为例如,'barzzzzzz' 将是匹配项,而我想替换的东西,但 'barzzzzzz'不是字典中的键,文字字符串 'ba[rz]*' 是。我怎样才能修改这个函数来工作?
(在不相关的说明中,这些“foo”和“bar”的东西是从哪里来的?)