2010-06-27 70 views

回答

4

Python不支持Unicode屬性,因此,你不能使用PiPf性質,所以我想您的解決方案是好得不能再好。

您可能還需要考慮那些可悲的是正在使用的「假引號」 - 急性和重音(´和``): \ u0060 and \ u00B4`

再就是guillemets(« » ‹ › ),你也想要那些嗎?

此外,你的命令有一個小錯誤:你將反斜槓添加到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]' 
+0

謝謝! Py3會支持unicode屬性嗎? – 2010-06-28 01:46:51

+1

尚未;現在正在重寫're'模塊,但我不知道何時/是否將它合併到主開發分支中。我懷疑它會在Python 3.3之前出現。 – 2010-06-28 05:23:41

+1

即使他們還沒有可用的're'模塊中,你仍然可以導入'unicodedata'模塊和範圍,我做'報價=「」。加入(C對C在(CHR(I)(0x110000 ))if unicodedata.category(c)in('Pf','Pi'))'。 – dan04 2016-07-19 20:49:49

5

引號通常具有Unicode類別Pi(標點,初始引用)或Pf(標點,最終引用)。您必須手動處理「中性」引號'"

+2

+1:男人,我忽略了這一點。我糾正了我的答案。不幸的是,Python不支持Unicode屬性(還)。他沒有指定Python,但我從他的代碼示例和他之前的問題中猜測出這一點。 – 2010-06-27 21:31:34