2016-09-05 2 views
0

Im Versuch, ein Verständnis für Capture-Gruppen zu gewinnen, dieses Beispiel mit:Capture-Gruppe mit Python Regex nicht erfassen

sentence = "the quick brown fox jumps over the lazy dog" 

re.search(r'\S+\s+\S+',sentence) 

<_sre.SRE_Match object; span=(0, 9), match='the quick'> 

ich sehe diese Spiele wie folgt:

re.search(r'\S+\s+\S+',sentence).group() 

'the quick' 

Ich möchte hinzufügen Spiel-Gruppe für das Wort ‚quick‘, so versuche ich dies:

re.search(r'\S+\s+\(S+)',sentence) 

, die einen Fehler gibt:

error: unbalanced parenthesis at position 10 

Was mache ich hier falsch?

+2

Sie haben einen Tippfehler. Du entkommst dem '(', aber du willst dem 'S' entkommen. Schalte '\ (S +)' auf '(\ S +)' – idjaw

Antwort

1

Sieht aus wie ein Tippfehler, aber ich werde immer noch eine Erklärung liefern.

Sie sind entweichenden der öffnenden Klammer so dass es ein Literal ( einstimmt, die am Ende des Ausdrucks ohne einen Öffnungsteil der schließenden Klammer macht, ersetzen:

\S+\s+\(S+) 

mit:

\S+\s+(\S+)