Passende mehrere regex-Muster mit der alternation operator?

Ich lief in ein kleines problem mit Python Regex.

Vermute, das ist der Eingang:

(zyx)bc

Was ich versuche zu erreichen, ist erhalten, was zwischen Klammern als ein einziges Spiel, und jeder char außen als ein einzelnes Spiel. Das gewünschte Ergebnis wäre entlang der Linien von:

['zyx','b','c']

Die Reihenfolge der Spiele sollte eingehalten werden.

Habe ich versucht, den Erhalt dieses mit Python 3.3, kann aber nicht scheinen, um herauszufinden, die richtige Regex. Bisher habe ich:

matches = findall(r'\((.*?)\)|\w', '(zyx)bc')

print(matches) ergibt die folgenden:

['zyx','','']

Irgendwelche Ideen was ich falsch mache?

  • Warum nicht einfach xyz|a|b?
  • Es war nur ein Beispiel für die Eingabe. Die regex sollte in der Lage sein, zu differenzieren zwischen verschiedenen Fällen, werden Sie zum Beispiel (ab)(bc)(ca), abc (abc)(abc)(abc) oder (zyx)bc, etc, während Sie erkennen, welche chars sind in Klammern gesetzt werden und welche nicht.
InformationsquelleAutor Julian Laval | 2013-01-06
Schreibe einen Kommentar