首页 > 解决方案 > 正则表达式替换为模式但保留模式本身

问题描述

我有两个字符串:

  1. [config.OPERATOR_ROLE]
  2. [config.MENEGER_ROLE]

我想把它换成

  1. {config.OPERATOR_ROLE}
  2. {config.OPERATOR_ROLE}

所以我创建了一个\[config.*ROLE]选择所有案例的模式,但它也替换了一个模式,所以我的文本将是\{config.*ROLE}. 如何排除部分模式的复制?

标签: regexpycharm

解决方案


您仍然可以re.sub在参数中使用捕获组repl

>>> re.sub("\[config.(\S+)_ROLE\]", r"{config.\g<1>_ROLE}", "Hello [config.E_ROLE]")

产量:

'Hello {config.E_ROLE}'

诀窍在于字符串\g<1>内部的语法。repl


推荐阅读