2016-05-06 4 views
-2

Я работаю с модулем ocr из Python, а некоторое изображение возвращает эту строку '921,\u201d'. (Изображение является датой, которая выглядит как 9/21/2015)Как сравнить две строки, которые содержат обратную косую черту в Python

Теперь, если я пытаюсь выполнить этот

a == '921,\u201d' 

Python автоматически экранирует перевернутую слэш (\) в закодированной строке и сравнении не равно.

Как сравнить две строки ascii без Python, интерпретирующих некоторые подстроки как символы Unicode?

Длина 6 Ошибка self.assertIn (res0, [r'921, \ u201d», "21 февраля 2015"]) AssertionError: и '(921, \ u201d' не найден в [ '921, \ u201d', '21 февраля 2015']

Спасибо. \ U201 является только один символ.

+3

Мы будем нуждаться в более точное описание от задействованных строк, а также от той версии Python, на которой вы находитесь. Что такое 'len' строки, которую предоставляет инструмент OCR? Имеет ли он буквальную обратную косую черту, или это просто «репрез» таким образом? Имеет ли он буквенные одинарные кавычки на каждом конце? – user2357112

+1

Это Python 2 или 3? –

ответ

3

Самый простой способ заключается в использовании необработанного строковый литерал.

a == r'921,\u201d' 

Это позволяет использовать литеральные обратные косые черты без необходимости их избегать (единственное ограничение что строка по-прежнему не может закончиться безвозвратной обратной косой чертой).

Вы также можете избежать обратной косой черты, предваряя обратную косую черту к нему:

a == '921,\\u201d' 
0

Попытка расшифровать с помощью «UTF-8»:

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

 Смежные вопросы

  • Нет связанных вопросов^_^