Ich möchte eine Liste von Zeichenfolgen in Python filtern, indem ich regex verwende. Im folgenden Fall behalten Sie nur die Dateien mit der Erweiterung '.npy'.
Der Code, der nicht funktioniert:
%Vor%Der gleiche Regex funktioniert für mich in Ruby:
%Vor%Was stimmt nicht mit dem Python-Code?
re.match('regex')
entspricht re.search('^regex')
oder text.startswith('regex')
aber regex Ausführung. Es wird nur überprüft, ob der String mit dem Regex beginnt.
Verwenden Sie stattdessen re.search()
:
Ausgabe:
%Vor% Und wenn Sie nur alle .npy
-Dateien erhalten möchten, verwenden Sie einfach str.endswith()
:
Wenn Sie mit übereinstimmen, muss das Muster den gesamten Eingabe. Erweitern Sie entweder den regulären Ausdruck:
%Vor%Welches würde übereinstimmen:
%Vor%Oder verwenden Sie re.search , welches
scannt durch die Zeichenfolge nach der ersten Position , in der das Muster für reguläre Ausdrücke eine Übereinstimmung erzeugt [...]
re.match()
sucht nach einer Übereinstimmung am Anfang der Zeichenfolge. Sie können stattdessen re.search()
verwenden.