pythone regexp 反向匹配

有这样的一个字符串,是一个短信模板如下:
亲爱的张三,您的本次消费1元,余额为0元,如有疑问,请联系客服400-800-8888。
我需要通过正则表达式获得张三 1 0 这样几个字段,则于姓名、消费、余额这几个数值有变化,我要如何使用其它不变的字段来拿到上面变化的三个字段,谢谢!

>>>import re

>>>str1 = '亲爱的张三,您的本次消费1元,余额为0元,如有疑问,请联系客服400-800-8888。'
>>>re.findall(r'这里要怎么写',str1)
>>>['张三',0,1]
阅读 3.2k
2 个回答

既然文本这么有规律,那就很好写,如下:

import re

str1 = '亲爱的张三,您的本次消费1元,余额为0元,如有疑问,请联系客服400-800-8888。'
print(re.findall(r'亲爱的(.*?),.*?消费(.*?)元.*?余额为(.*?)元',str1))

[('张三', '1', '0')]
import re
str = "亲爱的张三,您的本次消费1元,余额为0元,如有疑问,请联系客服400-800-8888。"
result=re.findall(r"(?<=亲爱的)[^,]+|[\d.]+(?=元)",str)
print(result)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏