gpt4 book ai didi

python - 使用正则表达式替换特定匹配项

转载 作者:行者123 更新时间:2023-11-28 16:24:43 25 4
gpt4 key购买 nike

我想使用正则表达式执行替换,不是针对所有匹配项,而是仅针对特定匹配项。但是,re.sub 替代了所有匹配项。我该怎么做?

这是一个例子。比如说,我有一个包含以下内容的字符串:

FOO=foo1
BAR=bar1
FOO=foo2
BAR=bar2
BAR=bar3

我想做的是:

re.sub(r'^BAR', '#BAR', s, index=[1,2], flags=re.MULTILINE)

得到下面的结果。

FOO=foo1
BAR=bar1
FOO=foo2
#BAR=bar2
#BAR=bar3

最佳答案

您可以将替换函数传递给 re.sub 以跟踪计数并检查是否应替换给定的索引:

import re

s = '''FOO=foo1
BAR=bar1
FOO=foo2
BAR=bar2
BAR=bar3'''

i = 0
index = {1, 2}

def repl(x):
global i
if i in index:
res = '#' + x.group(0)
else:
res = x.group(0)

i += 1
return res

print re.sub(r'^BAR', repl, s, flags=re.MULTILINE)

输出:

FOO=foo1
BAR=bar1
FOO=foo2
#BAR=bar2
#BAR=bar3

关于python - 使用正则表达式替换特定匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37512580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com