用CP1252编码的文件的正则表达式

时间:2011-07-05 14:59:17

标签: python regex

我有一个CP1252编码的文本文件,我使用python regex匹配模式。例如,以下文本可以由正则表达式字符串'1\s*(\w*)\s*(<.*$)'

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

但是当文本中包含特殊字符(如下文中带重音的“U”)时,正则表达式无法匹配。

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

我正在使用python的codecs模块使用以下语法从文件中读取文本:

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

任何想法,如何去做?

2 个答案:

答案 0 :(得分:1)

这适用于我的两台机器,但我正在复制并粘贴文本,因此可能会发生一些无形的翻译。你试过设置unicode标志吗?如在

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

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

答案 1 :(得分:0)

您忘记在标记中指定re.U