我有一个正则表达式
(obligor_id): (\d+);(obligor_id): (\d+):
以下是一个示例匹配:
Match 1
Full match 57-95 `obligor_id: 505732;obligor_id: 505732:`
Group 1. 57-67 `obligor_id`
Group 2. 69-75 `505732`
Group 3. 76-86 `obligor_id`
Group 4. 88-94 `505732`
我要尝试部分替换完全匹配项为以下内容:
obligor_id: 505732;obligor_id: 505732:
-> obligor_id: 505732;
有两种方法可以实现,
用空字符串替换第3组和第4组
用空字符串替换第1组和第2组,然后将第4组替换为
(\d+);
如何在Python中实现这两个方法?我知道有一个re.sub函数,但是我只知道如何替换整个匹配项,而不是部分替换组。
提前感谢。
(obligor_id)
需要成为一个组?你只是替换重复的id吗?如果是这样,请考虑用"obligor_id: " + match.group(1)
替换整行匹配obligor_id: (\d+);obligor_id: \1
。 - 9000re.sub
函数,将你的模式和r'\1: \2;'
替换字符串传入。请参考 正则表达式演示。 - Wiktor Stribiżew