Регулярное выражение, чтобы соответствовать все кавычки Unicode - PullRequest
1 голос
/ 28 июня 2010

Существует ли простое регулярное выражение для сопоставления всех кавычек Юникода?Или нужно написать код вручную следующим образом:

quotes = ur"[\"'\u2018\u2019\u201c\u201d]"

Спасибо, что прочитали.

Ответы [ 2 ]

5 голосов
/ 28 июня 2010

Кавычки часто будут иметь категорию Unicode Pi (пунктуация, начальная кавычка) или Pf (пунктуация, окончательная кавычка).Вам придется обрабатывать «нейтральные» кавычки ' и " вручную.

5 голосов
/ 28 июня 2010

Python не поддерживает свойства Unicode, поэтому вы не можете использовать свойства Pi и Pf, поэтому я думаю, что ваше решение так же хорошо, как оно есть.

Вы также можете рассмотреть «ложные кавычки», которые печально используются - острый и серьезный акцент (´ и `` ): \ u0060 and \ u00B4`.

Тогда есть guillemets (« » ‹ ›), вы тоже хотите их? Используйте \u00BB\u203A\u00AB\u2039 для тех.

Кроме того, в вашей команде есть небольшая ошибка: вы добавляете обратную косую черту в строку quotes (потому что вы используете необработанную строку). Вместо этого используйте строку в тройных кавычках.

>>> quotes = ur"[\"'\u2018\u2019\u201c\u201d\u0060\u00b4]"
>>> "\\" in quotes
True
>>> quotes
u'[\\"\'\u2018\u2019\u201c\u201d`\xb4]'
>>> quotes = ur"""["'\u2018\u2019\u201c\u201d\u0060\u00b4]"""
>>> "\\" in quotes
False
>>> quotes
u'["\'\u2018\u2019\u201c\u201d`\xb4]'
...