2017-07-18 3 views
0

Nicht sicher, warum dies nicht übereinstimmt und nicht funktioniert? Es scheint etwas mit dem regulären Ausdruck falsch ist, so dass er auch dann nicht übereinstimmen, obwohl ich es in dem Online-Regex TesterPython Regex Parsing auf Variable

current_name = "bob[0]" 
regex_match = re.compile('%s'%current_name) 
if re.match(regex_match, current_name): 
    print "matched" 
+1

Was versuchen Sie, von dieser Zeichenfolge übereinzustimmen? Der Wert zwischen '[' und ']'? – CoryKramer

+2

Sie versuchen, die Zeichenfolge 'bob [0]' mit dem Muster 'bob [0] \ [[. *]]' Zu verknüpfen? – janos

+0

Wenn Sie Backslashes in ein Regex-Muster setzen möchten, ohne sie zu verdoppeln, machen Sie eine rohe Zeichenkette - 'r'whatever'. Ihr umgekehrter Schrägstrich geht jedoch verloren, da das folgende Zeichen nicht Teil eines Backslash-Escape ist. – jasonharper

Antwort

0
current_name = "bob[0]" 
regex_match = re.compile('%s'%current_name.replace('[', r'\[')) 
if re.match(regex_match, current_name): 
    print "matched" 

Die eckige Klammer verursachen Probleme waren Öffnen getestet werden. Dies wird "übereinstimmend" drucken