cas*_*iel 8 python regex utf-8 python-2.7
我有一个文件,其中包含许多简单的utf-8文本行.如下,由by,它是中国人.
PROCESS????????[NOTIFY] ????2012022900000109 ????W12022910079166 ?????0.01? ?????true 2012-2-29 10:13:08
Run Code Online (Sandbox Code Playgroud)
文件本身以utf-8格式保存.文件名是xx.txt
这是我的python代码,env是python2.7
#coding: utf-8
import re
pattern = re.compile(r'?????(\d+)?')
for line in open('xx.txt'):
match = pattern.match(line.decode('utf-8'))
if match:
print match.group()
Run Code Online (Sandbox Code Playgroud)
这里有问题的是我没有结果.
我想从?????0.01?这里得到十进制字符串,这是0.01.
为什么这段代码不起作用?任何人都可以向我解释,我不知道任何线索.
uhz*_*uhz 18
您的代码有几个问题.首先你应该使用re.compile(ur'<unicode string>').另外很高兴添加re.UNICODE标志(虽然不确定是否真的需要).下一个是你仍然不会收到匹配,因为\d+不处理小数只是一系列数字,你应该使用\d+\.?\d+(你想要数字,可能是一个点和一个数字).示例代码:
#coding: utf-8
text = u"PROCESS????????[NOTIFY] ????2012022900000109 ????W12022910079166 ?????0.01? ?????true 2012-2-29 10:13:08"
import re
pattern = re.compile(ur'?????(\d+\.?\d+)?', re.UNICODE)
print pattern.search(text).group(1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20044 次 |
| 最近记录: |