2016-05-06 13 views
-2

Ich arbeite mit dem Modul Ocr aus Python und einige Bild geben diese Zeichenfolge '921,\u201d'. (Das Bild ist ein Datum, das wie 2015.09.21 aussieht)Wie zwei Strings zu vergleichen, die Backslashes in Python enthalten

Nun, wenn ich versuche, diesen

a == '921,\u201d' 

Python ausführen automatisch entkommt den invertierten Schrägstrich (\) in dem fest codierten String und der Vergleich ist nicht gleich.

Wie kann ich zwei ASCII-Strings vergleichen, ohne dass Python einige Teilstrings als Unicode-Zeichen interpretiert?

Die Länge beträgt 6 Der Fehler ist self.assertIn (res0, [r'921, \ u201d‘, "21. Februar 2015"]) AssertionError: u '(921, \ u201d' nicht gefunden in [ '921, \ u201d', '21. Februar 2015']

Dank. \ U201 ist ein nur ein Zeichen.

+3

Wir eine genauere Beschreibung müssen gehst der beteiligten Strings sowie der Python-Version, in der Sie sich befinden. Was ist der "len" der Zeichenfolge, die das OCR-Tool Ihnen gibt? Enthält es einen umgekehrten Schrägstrich, oder representiert es einfach so? Enthält es an jedem Ende wörtliche einfache Anführungszeichen? – user2357112

+1

Ist das Python 2 oder 3? –

Antwort

3

Der einfachste Weg ist wörtlich eine rohe Zeichenfolge zu verwenden.

a == r'921,\u201d' 

Dies ermöglicht Ihnen, umgekehrte Schrägstriche zu verwenden, ohne sie zu entziffern (die einzige restr Das bedeutet, dass eine Zeichenkette immer noch nicht mit einem unskalierten Backslash enden kann.

Sie können auch den Backslash durch einen umgekehrten Schrägstrich, um es vorangestellt wird:

a == '921,\\u201d' 
0

Versuchen Sie es mit ‚utf-8‘ zu entschlüsseln:

>>> '921,\u201d'.decode('utf-8') 
u'921,\\u201d' 
Verwandte Themen