Versuche dies:
import re
mystr = 'This is a string, with words!'
wordList = re.sub("[^\w]", " ", mystr).split()
Wie es funktioniert:
Aus den Dokumenten:
re.sub(pattern, repl, string, count=0, flags=0)
Geben Sie die Zeichenfolge zurück, die durch Ersetzen der nicht ganz überlappenden Muster in der Zeichenfolge ganz links durch die Ersetzungsreplikation erhalten wurde. Wenn das Muster nicht gefunden wird, wird die Zeichenfolge unverändert zurückgegeben. repl kann eine Zeichenfolge oder eine Funktion sein.
also in unserem Fall:
Muster ist ein nicht alphanumerisches Zeichen.
[\ w] bedeutet ein beliebiges alphanumerisches Zeichen und entspricht dem Zeichensatz [a-zA-Z0-9_]
a bis z, A bis Z, 0 bis 9 und Unterstrich.
Daher stimmen wir alle nicht alphanumerischen Zeichen überein und ersetzen sie durch ein Leerzeichen.
und dann teilen wir es (), wodurch die Zeichenfolge nach Leerzeichen aufgeteilt und in eine Liste konvertiert wird
also 'hallo-welt'
wird "Hallo Welt"
mit re
und dann ['Hallo', 'Welt']
nach split ()
Lassen Sie mich wissen, wenn Zweifel auftauchen.
\w
.