2011-07-05 71 views
2

我有一個CP1252編碼的文本文件,我使用python正則表達式匹配模式。例如,下面的文本可以通過正則表達式字符串'1\s*(\w*)\s*(<.*$)'正則表達式用CP1252編碼的文件

1 kAMpleksa  <fs af='kAMpleksa,unk,,,,,,'> 

但是,當文本包含特殊字符,如重音的「U」在下面的文本,正則表達式匹配失敗匹配。

1 aBiyukÙwa  <fs af='aBiyuk,unk,,,,,,'> 

我讀使用Python的codecs模塊使用以下語法從文件中的文本:

codecs.open('/home/abcl/TokenOutput.wx', 'r', 'cp1252') 

任何想法,怎麼做呢?

回答

1

這對我的兩臺機器都有效,但我正在複製並粘貼文本,因此可能會出現一些無形的翻譯。你有沒有嘗試設置unicode標誌?作爲

'(?u)1\s*(\w*)\s*(<.*$)' 

re.match(r, t, flags=re.U).group() 
0

您忘記了在標誌中指定re.U