Wie benutzt man '\ Q' und '\ E' Regex Symbole in Python?

Ich dachte, das sollte funktionieren, aber das geht nicht

import re if re.match("\Qbla\E", "bla"): print "works!" 

Warum funktioniert das nicht? Kann ich die '\ Q' und '\ E' Symbole in Python verwenden? Wie?

  • Regulärer Ausdruck, der mit einem mehrzeiligen Textblock übereinstimmt
  • So ersetzen Sie HTML-Kommentare mit benutzerdefinierten <comment> -Elementen
  • Wie man lange reguläre Ausdrucksregeln auf mehrere Zeilen in Python aufteilt
  • Python-Regex, um ein Zeichen früher in der Zeichenfolge zu vermeiden
  • Python Regex "Objekt hat kein Attribut"
  • Regex Frage über Parsing Methode Signatur
  • Passende Klammern in python regulären Ausdruck
  • Finden Sie alle Vorkommen eines Teilstrings in Python
  • 3 Solutions collect form web for “Wie benutzt man '\ Q' und '\ E' Regex Symbole in Python?”

    Pythons Regex-Motor unterstützt diese nicht; Siehe §7.2.1 "Regular Expression Syntax" in der Python-Dokumentation für eine Liste dessen, was es unterstützt. Allerdings können Sie die gleiche Wirkung durch Schreiben re.match(re.escape("bla"), "bla") ; re.escape ist eine Funktion, die Backslashs vor allen Sonderzeichen einfügt.

    Übrigens solltest du eigentlich "rohe" Strings, r"..." anstatt nur "..." , da sonst Backslashs zweimal verarbeitet werden (einmal wenn der String analysiert wird und dann wieder von der Regex Engine ), Was bedeutet, dass du Dinge wie \\b anstelle von \b schreiben musst. Mit r"..." verhindert, dass erste Verarbeitung übergeben, so können Sie einfach schreiben \b .

    Leider unterstützt Python die \Q und \E Escape-Sequenzen nicht. Du musst einfach alles selbst entkommen.

    Python unterstützt \ Q … \ E nicht. Ref: http://www.regular-expressions.info/refflavors.html

    Aber das bedeutet nicht, dass es nicht hilft, Flügel von Metazeichen zu entkommen. Ref: http://docs.python.org/library/re.html#re.escape

    Python ist die beste Programmiersprache der Welt.