Есть ли простое регулярное выражение для соответствия всем кавычкам Юникода? Или нужно вручную закодировать это так:
quotes = ur"[\"'\u2018\u2019\u201c\u201d]"
Спасибо за чтение.
Брайан
Есть ли простое регулярное выражение для соответствия всем кавычкам Юникода? Или нужно вручную закодировать это так:
quotes = ur"[\"'\u2018\u2019\u201c\u201d]"
Спасибо за чтение.
Брайан
Python не поддерживает свойства Unicode, поэтому вы не можете использовать свойства Pi и Pf, поэтому я думаю, что ваше решение настолько хорошо, насколько это возможно.
Вы также можете рассмотреть «ложные кавычки», которые, к сожалению, используются — острый и серьезный акцент (´ и `` ):`and´`.
Затем идут кайры (« » ‹ ›), их тоже хотите? Используйте \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]'
re, но я понятия не имею, когда и будет ли он объединен с основной веткой разработки. Я сомневаюсь, что он появится до Python 3.3.
- person Tim Pietzcker; 28.06.2010
re, вы все равно можете импортировать модуль unicodedata и выполнить quotes = ''.join(c for c in (chr(i) for i in range(0x110000)) if unicodedata.category(c) in ('Pf', 'Pi')).
- person dan04; 19.07.2016
Кавычки часто имеют категорию Unicode Pi (знак пунктуации, начальная кавычка) или Pf (пунктуация, конечная кавычка). Вам придется обрабатывать «нейтральные» кавычки ' и " вручную.