it-swarm.com.de

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

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

Wie mache ich das wiederholt, wenn das Programm nicht stoppt, bis ALLE Übereinstimmungen gefunden wurden? Gibt es dafür eine eigene Funktion?

267
kjakeb

Verwenden Sie stattdessen re.findall Oder re.finditer.

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

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

Beispiel:

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