492 Stimmen

Wie kann ich alle Übereinstimmungen mit einem regulären Ausdruck in Python finden?

In einem Programm, das ich gerade schreibe, verwendet Python die re.search() Funktion, um Übereinstimmungen in einem Textblock zu finden und die Ergebnisse zu drucken. Das Programm wird jedoch beendet, sobald es die erste Übereinstimmung im Textblock gefunden hat.

Wie kann ich dies wiederholt tun, so dass das Programm nicht anhält, bis ALLE Treffer gefunden wurden? Gibt es dafür eine eigene Funktion?

841voto

Amber Punkte 473552

使用方法 re.findall o re.finditer stattdessen.

re.findall(pattern, string) gibt eine Liste von übereinstimmenden Zeichenfolgen zurück.

re.finditer(pattern, string) gibt einen Iterator über MatchObject Objekte.

Exemple :

re.findall( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')
# Output: ['cats', 'dogs']

[x.group() for x in re.finditer( r'all (.*?) are', 'all cats are smarter than dogs, all dogs are dumber than cats')]
# Output: ['all cats are', 'all dogs are']

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X