当前位置: 首页 > 面试题库 >

带有utf8问题的python正则表达式

邹学民
2023-03-14
问题内容

我得到了一个包含多行纯utf-8文本的文件。如下所示,按中文,是中文。

PROCESS:类型:关爱积分[NOTIFY]   交易号:2012022900000109   订单号:W12022910079166    交易金额:0.01元    交易状态:true 2012-2-29 10:13:08

文件本身以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()

这里有问题的是我没有结果。

我想从交易金额:0.01元这里的十进制字符串中获得0.01

为什么此代码不起作用?谁能向我解释,我什么也没有。


问题答案:

您的代码有几个问题。首先,您应该使用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)


 类似资料:
  • 问题内容: 我正在使用Django的URLconf,我将收到的URL是 我想使用来匹配该URL ,但它不起作用。 然后我发现这是“?”的问题。 因为我尝试使用even 进行匹配,但都失败了,但是当它是“ +”或任何其他字符时,它可以工作。 如何匹配“?”,有什么特别之处吗? 问题答案: 你的网址内部不匹配的原因是因为?开始新的GET查询。 因此,URL的可匹配部分只能达到第一个“ aaa”。其余的

  • 问题内容: 我需要从字符串“ بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ”中删除一些Unicode符号 我知道他们肯定在这里。我试过了: 但这不起作用。字符串保持不变。我究竟做错了什么? 问题答案: 您使用的是python 2.x还是3.0? 如果您使用的是2.x,请尝试使用“ u”使正则表达式字符串成为unicode-escape字符串。由于它是正则表达式,因此

  • 本文向大家介绍常见的正则表达式问题,包括了常见的正则表达式问题的使用技巧和注意事项,需要的朋友参考一下 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。 关于^开始和$结束的问题注意 \b匹配一个单词边界, ?: ?= ?! 这四个不加^和$,其他都加^和$。 关于|的理解 1:/^a|zood$/

  • form control()validators . pattern()与此regex表达式有问题,用于验证1个字符、1个数字、最少8个字符、最多16个字符的密码。 通过验证程序的测试密码: asdfqwer//不应通过验证器 zxcvasdf//不应通过验证器 asdfqwer2 //这是正确的 不通过验证器的测试密码: 程序//这是正确的 在服务器端尝试这种模式或者使用在线regex测试平台都

  • 当前情况暂且可以满足: 但若: 头)被截断了。如何修改呢? 字符串的格式:\d+\.(我希望这里是任意字符,但也可以削减范围)+ * 然后重复。

  • 问题内容: 我有一个包含以下文本的字符串 我想将每个 孤立的 br 替换为 问题是我想避免将字符串转换为 我想做的是将字符串(使用replaceAll)转换为 我敢肯定这很简单,但是我的正则表达式不正确。 我的正则表达式 应该 找到“空白”,“ b”,“ r”,“空白”或“空白”,“ b”,“ r”,“行尾” 但是它错过了我字符串中的最后一个“ br” 我究竟做错了什么??TKS! 问题答案: 用