gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:55 25 4
gpt4 key购买 nike

我想在 python 中为下面的行编写一个正则表达式来 grep 相应的值:

establishmentCause mo-Signalling,
Freq = 6300
Radio Bearer ID = 0, Physical Cell ID = 396

在这里,我想获取每个 header 的值,我使用下面的正则表达式来获取值,除了“Radio Bearer ID”之外的所有 header 都成功

pat = re.compile(r'%s\s[=\s]*\b(.*)\b(?:,|\Z)'%items[i])
value = pat.search(line)
print(value.group(1))

这给出了“ radio 承载ID”的输出为0,物理小区ID = 396,而我只需要0。有人可以告诉我我的正则表达式有什么问题吗,即使我匹配 ,\Z 重新引擎不会限制匹配,直到 , 但继续进一步。

最佳答案

量词*是贪婪的。您可以使用非贪婪版本 *? 或字符串结尾 (\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])

关于Python 正则表达式与 ","或字符串结尾不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52640941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com