Unterstützen reguläre Ausdrücke aus dem re-Modul Wortgrenzen (b)?
Beim Versuch, die b-Escape-Sequenz zu verwenden, um Wortgrenzen abzugleichen Im re-Modul von Python kann es zu Inkonsistenzen kommen. Das folgende Code-Snippet veranschaulicht dies:
>>> x = 'one two three' >>> y = re.search("\btwo\b", x)
Überraschenderweise fehlt das erwartete Übereinstimmungsobjekt und gibt stattdessen „None“ zurück. Dies wirft die Frage auf, ob Python den b-Ausdruck unterstützt oder ob seine Verwendung falsch ist.
Die Diskrepanz ergibt sich aus der Verwendung regulärer Zeichenfolgen im Code. Stattdessen sollten Rohzeichenfolgen verwendet werden, wie unten gezeigt:
>>> x = 'one two three' >>> y = re.search(r"\btwo\b", x)
Diese Änderung behebt das Problem und liefert wie beabsichtigt ein Übereinstimmungsobjekt.
Darüber hinaus sollten Sie die Verwendung des folgenden Ansatzes in Betracht ziehen:
word = 'two' re.compile(r'\b%s\b' % word, re.I)
Dadurch wird sichergestellt, dass beim Abgleich die Groß-/Kleinschreibung nicht beachtet wird, wodurch möglicherweise der Umfang erfolgreicher Übereinstimmungen erweitert wird.
Das obige ist der detaillierte Inhalt vonBehandelt das Python-Modul „re' Wortgrenzen („\b') in regulären Ausdrücken korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!