我想
我看到Python有一个带有函数sub的re库,但我不知道如何获得正则表达式的完全匹配。
一些小代码,也许会更清楚一点:
s = 'contrat bail habitation'
print re.sub(r'(contrat)\s', ???.replace(' ', '_'), s)
我想用contrat_替换contrat(这只是用于示例,我正在处理的完整过程将更复杂,但我更喜欢从一个简单的部分开始)。
代替???,我不知道要用r'(contrat)\s'
得到什么来得到什么。
提前感谢您的帮助。
答案 0 :(得分:4)
您可以使用lambda表达式作为replacment参数:
re.sub(rx, lambda x: x.group().replace(' ', '_'), s)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
repl 可以是字符串或函数...如果 repl 是一个函数,则会为每个非重叠的模式调用它EM>。该函数接受单个匹配对象参数,并返回替换字符串。