match_object.group (0) sagt, dass der ganze Teil von match_object ausgewählt ist.
Zusätzlich kann Gruppe (0) durch Vergleich mit Gruppe (1), Gruppe (2), Gruppe (3), ..., Gruppe (n) erklärt werden. Gruppe (0) sucht den gesamten Übereinstimmungsausdruck. Um dann mehr übereinstimmende Orte zu bestimmen, werden Paranthesen verwendet: Gruppe (1) bedeutet, dass das erste Paar der Paarung den übereinstimmenden Ausdruck 1 findet, Gruppe (2) sagt, dass das zweite Paar der nächsten Paarung den Übereinstimmungsausdruck 2 findet und so weiter. In jedem Fall bestimmt die öffnende Klammer das nächste Paranthesepaar, indem sie die am weitesten schließende Klammer verwendet, um ein Paranthesepaar zu bilden. Das klingt wahrscheinlich verwirrend, deshalb gibt es unten ein Beispiel.
Aber Sie müssen unterscheiden zwischen der Syntax der Paranthese von '(? < = abc)'. Diese Paranthese hat eine andere syntaktische Bedeutung, nämlich das zu lokalisieren, was durch '? < = '. Dein Hauptproblem ist also, dass du nicht weißt was? < = 'tut. Dies ist ein sogenannter Look-Behind, der bedeutet, dass er dem Teil hinter dem Ausdruck entspricht, den er begrenzt.
Im folgenden Beispiel ist 'abc' an den Look-Behind gebunden.
Keine Paranthese wird benötigt, um die Match-Gruppe 0 zu bilden, da sie das ganze Match-Objekt trotzdem findet.
Die Halterung Öffnung vor dem Buchstaben ‚d‘ nimmt die letzte schließende Klammer vor dem Buchstaben ‚F‘ Gruppe 1
Die Klammern passend zu bilden, die passenden definieren um die Buchstaben ‚e‘ sind Gruppe 2.
import re
m = re.search('(?<=abc)(d(e))f', 'abcdef')
print(m.group(0))
print(m.group(1))
print(m.group(2))
Diese Drucke:
def de e
Es ist ein Übereinstimmungswert. –
'abc' ist nicht Teil des Spiels. – user2357112
Wenn Sie 'ABC' wollten, warum ist es in einem Lookbehind? – jonrsharpe