正则表达式匹配所有unicode引号

时间:2010-06-27 21:03:12

标签: regex unicode quotes character-properties

是否有一个简单的正则表达式来匹配所有unicode引号?或者是否必须像这样手动编码:

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

感谢您的阅读。

布赖恩

2 个答案:

答案 0 :(得分:5)

Python不支持Unicode属性,因此您无法使用PiPf属性,所以我猜您的解决方案就像它一样好。

您可能还想考虑令人遗憾地使用的“错误引号” - 尖锐的重音(´和``): \ 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]'

答案 1 :(得分:5)

引号通常包含Unicode类别Pi(标点符号,首字母引用)或Pf(标点符号,最终引用)。您必须手动处理“中性”引号'"