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?

  • Python-Rohstränge und schleppenden Backslash
  • Escape String Python für MySQL
  • Prozess-Escape-Sequenzen in einer Zeichenfolge in Python
  • Wie entkomme ich einem Backslash-Escaped String in Python?
  • Json.dumps (): escaping forward schrägstriche
  • Wie speichert man einen String, der sowohl ein einzelnes Zitat (') als auch ein doppeltes Zitat (") in python enthält
  • 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.