2017-05-27 7 views
0

Ich versuche, die n-te Position von falsch mit wahr zu ersetzen. Und das funktioniert, wenn ich% s im Quantifier mit jeder 0-9 Ziffer ändere. Wenn ich jedoch eine Variable einfüge, funktioniert es nicht mehr und ich bekomme zurückgegeben, dass die Variable als eine leere Zeichenfolge ('') interpretiert wird. Ich vermute es hat damit zu tun, dass Regex eine Zeichenkette als Muster verwendet. Auch wenn ich usw. einfüge {'+' str (variabel) '+'} usw., heißt es, dass die Akkoladen nicht geschlossen sind. Kann mir jemand den richtigen Weg erklären, um Variablen in Verbindung mit Regex zu verwenden?Variable in Regex Python

Ich habe den folgenden Code:

pos = str(lijst2.index(x)) 

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

Pos Beispiel: 3
New String Beispiel: False, False, False, False, False
Was ich will: False, False, False, True, False

Das funktioniert völlig in Ordnung:

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

Antwort

0

Dies funktioniert gut:

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