Вопрос:

Регулярное выражение, чтобы соответствовать все кавычки Unicode

regex unicode quotes character-properties

2465 просмотра

2 ответа

38723 Репутация автора

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

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

Спасибо за чтение.

Брайан

Автор: Brian M. Hunt Источник Размещён: 27.06.2010 09:03

Ответы (2)


5 плюса

262317 Репутация автора

Решение

Python не поддерживает свойства Unicode, поэтому вы не можете использовать свойства Piand 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]'
Автор: Tim Pietzcker Размещён: 27.06.2010 09:12

5 плюса

66927 Репутация автора

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

Автор: dan04 Размещён: 27.06.2010 09:17
Вопросы из категории :
32x32