regex - 正则表达式替换为模式但保留模式本身
问题描述
我有两个字符串:
[config.OPERATOR_ROLE]
[config.MENEGER_ROLE]
我想把它换成
{config.OPERATOR_ROLE}
{config.OPERATOR_ROLE}
所以我创建了一个\[config.*ROLE]
选择所有案例的模式,但它也替换了一个模式,所以我的文本将是\{config.*ROLE}
. 如何排除部分模式的复制?
解决方案
您仍然可以re.sub
在参数中使用捕获组repl
:
>>> re.sub("\[config.(\S+)_ROLE\]", r"{config.\g<1>_ROLE}", "Hello [config.E_ROLE]")
产量:
'Hello {config.E_ROLE}'
诀窍在于字符串\g<1>
内部的语法。repl
推荐阅读
- django - 未捕获(承诺)错误:请求失败,状态码为 400,如何在 React.js + Django App 中解决此错误?
- ios - 在 iOS 上以 MVVM-C 模式将数据传递给现有视图模型
- elasticsearch - 通过elasticsearch.index、body结构映射向elasticsearch添加新文档
- c# - 如何检查鼠标位置是否在 circleCollider2D 内
- java - springboot java mysql参数出现语法错误
- swift - 条件绑定的初始化程序必须具有可选类型,而不是 'Todo?.Type'
- wordpress - 重新排序 WooCommerce 变体下拉列表(不是重新排序属性术语)
- reactjs - 如何等待“每个数组”功能?
- azure-devops - Azure DevOps:部署组作业状态是如何决定的?
- linux - 如何使用 bsub 为我的代码考虑两组输入