使用正则表达式获取,编辑和替换字符串

时间:2018-06-07 23:15:00

标签: python regex string

我想

  1. 使用regex
  2. 分析我的部分字符串
  3. 编辑它(在此部分中用' _'替换'')
  4. 更换零件1.通过第2部分中获得的字符串获取功能。
  5. 我看到Python有一个带有函数sub的re库,但我不知道如何获得正则表达式的完全匹配。

    一些小代码,也许会更清楚一点:

    s = 'contrat bail habitation'
    print re.sub(r'(contrat)\s', ???.replace(' ', '_'), s)
    

    我想用contrat_替换contrat(这只是用于示例,我正在处理的完整过程将更复杂,但我更喜欢从一个简单的部分开始)。 代替???,我不知道要用r'(contrat)\s'得到什么来得到什么。

    提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您可以使用lambda表达式作为replacment参数:

re.sub(rx, lambda x: x.group().replace(' ', '_'), s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

来自re.sub documentation

  

repl 可以是字符串或函数...如果 repl 是一个函数,则会为每个非重叠的模式调用它EM>。该函数接受单个匹配对象参数,并返回替换字符串。