是否有一個簡單的正則表達式來匹配所有的unicode引號?還是必須像這樣手寫代碼:正則表達式來匹配所有的unicode引號
quotes = ur"[\"'\u2018\u2019\u201c\u201d]"
感謝您的閱讀。
布賴恩
是否有一個簡單的正則表達式來匹配所有的unicode引號?還是必須像這樣手寫代碼:正則表達式來匹配所有的unicode引號
quotes = ur"[\"'\u2018\u2019\u201c\u201d]"
感謝您的閱讀。
布賴恩
Python不支持Unicode屬性,因此,你不能使用Pi
和Pf
性質,所以我想您的解決方案是好得不能再好。
您可能還需要考慮那些可悲的是正在使用的「假引號」 - 急性和重音(´
和``):
\ 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]'
引號通常具有Unicode類別Pi
(標點,初始引用)或Pf
(標點,最終引用)。您必須手動處理「中性」引號'
和"
。
+1:男人,我忽略了這一點。我糾正了我的答案。不幸的是,Python不支持Unicode屬性(還)。他沒有指定Python,但我從他的代碼示例和他之前的問題中猜測出這一點。 – 2010-06-27 21:31:34
謝謝! Py3會支持unicode屬性嗎? – 2010-06-28 01:46:51
尚未;現在正在重寫're'模塊,但我不知道何時/是否將它合併到主開發分支中。我懷疑它會在Python 3.3之前出現。 – 2010-06-28 05:23:41
即使他們還沒有可用的're'模塊中,你仍然可以導入'unicodedata'模塊和範圍,我做'報價=「」。加入(C對C在(CHR(I)(0x110000 ))if unicodedata.category(c)in('Pf','Pi'))'。 – dan04 2016-07-19 20:49:49