我想使用正则表达式执行替换,不是针对所有匹配,而是针对特定匹配。但是,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
答案 0 :(得分:3)
您可以将替换函数传递给跟踪计数的remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'wpse_custom_wp_trim_excerpt');
function wpse_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', 'wpse_excerpt_length', 999 );
并检查是否应该替换给定的索引:
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)
答案 1 :(得分:0)
你可以