Python regex: wie man hex dec Zeichen aus string entfernen [duplicate]

Diese Frage hat hier schon eine Antwort:

  • Was bedeutet ein führendes `\ x` bedeutet in einer Python-Zeichenfolge` \ xaa` 2 Antworten
text="\xe2\x80\x94" print re.sub(r'(\\(?<=\\)x[a-z0-9]{2})+',"replacement_text",text) 

Ausgabe ist

  • Lesen / Schreiben von Python-Liste von / zu Binärdatei
  • Rpy2 arbeitet in der Konsole, kann aber nicht per Website importiert werden (mit Fehler "R_isMethodsDispatchOn")
  • Parse String in Spalten python pandas / xa0 anstelle von Leerraum
  • Wie benutzt man win32com.client.constants mit MS Word?
  • Python von Actionscript anrufen
  • Pprint Sortierung dicts aber nicht gesetzt?
  • Wie kann ich die Hex-Dezimalzeichen in dieser Situation behandeln?

  • Mehrere ModelAdmins / Ansichten für das gleiche Modell in Django admin
  • Ist pytest parametrisierte Testarbeit mit unertesten klassenbasierten Tests?
  • Wie man mit einem Prozess mit dem Unterprozessmodul richtig interagiert
  • Wie kann ich mit Python arbeiten?
  • TypeError: Bilddaten können nicht in float konvertiert werden
  • Vorverarbeitung von Funktionstext in Laufzeit vor Kompilierung
  • 2 Solutions collect form web for “Python regex: wie man hex dec Zeichen aus string entfernen [duplicate]”

    Ihre Eingabe hat keine Backslashs. Es hat 3 Bytes, die UTF-8 Kodierung für das U + 2014 EM DASH Zeichen:

     >>> text = "\xe2\x80\x94" >>> len(text) 3 >>> text[0] '\xe2' >>> text.decode('utf8') u'\u2014' >>> print text.decode('utf8') — 

    Sie müssen diese UTF-8 Bytes direkt übereinstimmen oder von UTF-8 auf unicode decodieren und mit dem Codepoint übereinstimmen. Letzteres ist vorzuziehen; Versuche immer, mit Text als Unicode umzugehen, um zu vereinfachen, wie viele Charaktere du zu einer Zeit umwandeln musst.

    Beachten Sie auch, dass Pythons repr() -Ausgabe (die bei der Echo im interaktiven Interpreter oder beim Drucken von Listen, Dicts oder anderen Containern \xhh verwendet wird) \xhh Escape-Sequenzen verwendet, um ein nicht druckbares Zeichen darzustellen. Für UTF-8-Strings, das alles außerhalb des ASCII-Bereichs enthält. Sie könnten nur etwas außerhalb dieses Bereichs ersetzen mit:

     re.sub(r'[\x80-\xff]+', "replacement_text", text) 

    Berücksichtigen Sie, dass dies mehrere UTF-8-codierte Zeichen in einer Reihe entsprechen wird, und ersetzen Sie diese zusammen als Gruppe!

    Ihre Eingabe ist in Hex, nicht eine tatsächliche "\ xe2 \ x80 \ x94". \ X ist nur der Weg zu sagen, dass die folgenden Zeichen in Hex interpretiert werden sollten.

    Dies wurde in diesem Beitrag erklärt .

    Python ist die beste Programmiersprache der Welt.