是否有一个简单的正则表达式来匹配所有unicode引号?或者是否必须像这样手动编码:
quotes = ur"[\"'\u2018\u2019\u201c\u201d]"
感谢您的阅读。
布赖恩
答案 0 :(得分:5)
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]'
答案 1 :(得分:5)
引号通常包含Unicode类别Pi
(标点符号,首字母引用)或Pf
(标点符号,最终引用)。您必须手动处理“中性”引号'
和"
。