2017-05-27 121 views
0

我试图用false替换false的第n个位置。如果我用0-9数字改变量词中的%s,这就行得通了。但是,当我插入一个变量它不再工作了,我得到返回,该变量被解释为一个空字符串('')。我猜它必须与该正则表达式使用字符串作为模式。另外,当我插入等{'+'str(变量)'+'}等,它表示,荣誉是不封闭的。 任何人都可以告诉我与正则表达式结合使用变量的正确方法吗?正则表达式python中的变量

我有以下代码:

pos = str(lijst2.index(x)) 

new_string = re.sub(r'^((.*?False.*?){%s})False' % pos, r'\1True', new_string) 

名次例如:3
新字符串例如:False, False, False, False, False
我想要什么:False, False, False, True, False

这工作完全正常:

nieuwstring = re.sub(r'^((.*?False.*?){3})False' r'\1True', nieuwstring) 

回答

0

这只是正常:

import re 

input = 'False, False, False, False, False' 

pos = 2 

pattern = r'(?<=^(?:False,){%i})False' % pos 

output = re.sub(pattern, r'True', input) 

print(output) # False, False, True, False, False 

Live Demo