Python regulärer Ausdruck stimmt nicht überein

8

Dies ist eines dieser Dinge, bei denen ich sicher bin, dass mir etwas Einfaches fehlt, aber ... Im folgenden Beispielprogramm versuche ich, die RE-Bibliothek von Python zu verwenden, um die Zeichenfolge "line" zu analysieren Fließkommazahl kurz vor dem Prozentzeichen, also "90.31". Aber der Code druckt immer "keine Übereinstimmung".

Ich habe ein paar andere reguläre Ausdrücke ausprobiert, alle mit dem gleichen Ergebnis. Was vermisse ich?

%Vor%     
Matt 16.07.2013, 15:21
quelle

3 Antworten

17

match entspricht nur dem Anfang der Zeichenfolge. Ihr Code funktioniert gut, wenn Sie stattdessen pct_re.search(line) verwenden.

    
Daniel Roseman 16.07.2013, 15:23
quelle
4

Sie sollten stattdessen re.findall verwenden:

%Vor%

re.match wird am Anfang der Zeichenfolge übereinstimmen. Sie müssten also die Regex für die vollständige Zeichenfolge erstellen.

    
Rohit Jain 16.07.2013 15:24
quelle
2

versuchen Sie das, wenn Sie wirklich passen wollen:

%Vor%

r '...' ist ein "roher" String, der einige Escape-Sequenzen ignoriert, was eine gute Übung ist, um mit regexp in Python zu arbeiten. - kratenko (siehe Kommentar unten)

    
Conan Li 16.07.2013 15:25
quelle

Tags und Links