您的代码有几个问题。首先,您应该使用re.compile(ur'<unicode string>')
。另外,添加re.UNICODE标志也很不错(尽管不确定此处是否确实需要)。下一个是您仍然不会收到匹配项,因为\d+
不能只处理一系列数字,\d+\.?\d+
而应该只处理小数(您需要数字,可能是点和数字)。示例代码:@H_419_7@
#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)