2011-01-24 90 views
5
我有關於Python正則表達式的加重的問題

,我做以下嘗試:問題的重音字符

import re 
ER = re.compile(r'\w', re.L) 
print(ER.sub('.','Maçã')) 

..çã 

即使使用re.compile傳遞區域設置作爲參數,所述修飾是未能識別。 有沒有人有這個問題?

謝謝!

+2

也許有人瞭解巴西人可以把這篇文章翻譯成英文嗎? – 2011-01-24 12:40:14

回答

4

你最好使用re.U unicode標誌。

如果使用Python 2.x的,你還需要指定字符串爲Unicode,即

print(ER.sub('.', u'Maçã')) 
+0

對我來說,這隻適用於python3 - 在2.7上,我得到'... . ' – Kimvais 2011-01-24 13:09:02

4

http://www.regular-expressions.info/python.html

默認情況下,Python的正則表達式引擎只到Z考慮字母A,數字0到9,以及下劃線作爲「單詞字符」。指定標誌re.L或re.LOCALE,使\ w匹配給定當前語言環境設置的所有字符。或者,您可以指定re.U或re.UNICODE將所有腳本中的所有字母視爲單詞字符。該設置還會影響單詞邊界。

嘗試使用re.UNICODE。

0

我得到了問題!我正在嘗試在shell中使用此代碼。所以,我需要用這種方式來使用: ' '

進口重新 ER = re.compile(R '\ W',re.L) ER.sub(,統一(' 馬卡',「UTF -8'))

非常感謝! :)