Python Regex für Bindestriche

8

Ich suche nach einer Regex, um die Bindestriche in Python zu finden.

Der nächste, den ich geschafft habe, ist: \ w + - \ w + [- w +] * '

%Vor%

welche die Liste ['one-hundered-and-three-', 'foo-bar'] zurückgibt.

Dies ist fast perfekt, außer für den abschließenden Bindestrich nach "drei". Ich möchte nur den zusätzlichen Bindestrich, wenn ein "Wort" folgt. d. h. anstelle von '[- \ w +] *' brauche ich etwas wie '(- \ w +) *', von dem ich dachte, dass es funktionieren würde, aber nicht (es kommt ['-three,]'). d. h. etwas, das zu | Wort passt, gefolgt von Bindestrich gefolgt von Wort, gefolgt von Bindestrichwort null oder mehrmals |.

    
Sixhobbits 05.12.2011, 09:28
quelle

1 Antwort

18

Versuchen Sie Folgendes:

%Vor%

Hier betrachten wir ein Bindestrichwort als:

  • eine Reihe von Wortzeichen
  • gefolgt von einer beliebigen Anzahl von:
    • ein einzelner Bindestrich
    • gefolgt von Wortzeichen
a'r 05.12.2011, 09:39
quelle

Tags und Links