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

  • PyDev unittesting: Wie man den Text aufnimmt, der bei einem logging angemeldet ist.Logger in "Captured Output"
  • Numpy ändert nicht den Wert eines Array-Elements nach dem Maskieren
  • Holen Sie sich n Punkte auf einer Linie
  • Python leichter Server für eingebettete Geräte
  • Reine numpy Ausdruck für die Auswahl von gleichen Länge Subarrays mit verschiedenen Startindizes aus 3-D-Array
  • Schreiben Sie Excel Cell Kommentar mit Python auf Linux?
  • Wie kann ich die Hex-Dezimalzeichen in dieser Situation behandeln?

  • Unterstützt asyncio asynchrone E / A für Dateioperationen?
  • Aufzeichnung der Gesamtzeit für den Betrieb einer Spinne in scrapy
  • Gibt es eine Python-Äquivalent zu der PHP-Funktion htmlspecialchars ()?
  • Konfigurieren Sie IDLE, um Unicode zu verwenden
  • Python: Kombinationen von Eltern-Kind-Hierarchie
  • Generiere iframe von django tag
  • 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.