为了账号安全,请及时绑定邮箱和手机立即绑定

Python正则表达式与“,”或字符串结尾不匹配

Python正则表达式与“,”或字符串结尾不匹配

jeck猫 2021-06-28 17:58:06
我想在python中为下面的行编写一个正则表达式来grep相应的值:establishmentCause mo-Signalling,Freq = 6300Radio Bearer ID = 0, Physical Cell ID = 396在这里,我想获取每个标头的值,我使用下面的正则表达式来获取值,并且除了“Radio Bearer ID”之外的所有值都成功pat = re.compile(r'%s\s[=\s]*\b(.*)\b(?:,|\Z)'%items[i])value = pat.search(line)print(value.group(1))这给出了"Radio Bearer ID"as 0, Physical Cell ID = 396where as I want only的输出0。有人可以告诉我我的正则表达式有什么问题,即使我正在匹配,并且\Z重新引擎不会限制匹配直到,但继续进一步。
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

量词*是贪婪的。您可以使用非贪婪版本*?,字符串 ( \Z)或结尾之前尽可能少地匹配:

pat = re.compile(r'%s\s[=\s]*\b(.*?)\b(?:,|\Z)'%items[i])

或者,您可以使用字符类排除,

pat = re.compile(r'%s\s[=\s]*\b([^,]*)\b(?:,|\Z)'%items[i])


查看完整回答
反对 回复 2021-07-06
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号