【发布时间】:2021-08-17 14:08:47
【问题描述】:
我是 regex 和 python 的新手,我必须从文本文件中找到第一次出现的字符串。并且在找到第一次出现的字符串后需要找出驻留在传递字符串的字符串。我只需要将第一个结果存储在变量中。
文本文件如下所示:
Media Attribute (a): rtpmap:97 AMR/8000
Media Attribute (a): fmtp:97 mode-set=0,2,4,7; mode-change-period=2; mode-change-capability=2; mode-change-neighbor=1; max-re...
Media Attribute (a): rtpmap:100 telephone-event/8000
我需要的输出是从第一次出现的“Media Attribute (a):”中获取“rtpmap:97 AMR/800”作为字符串。
我执行了以下代码,但输出为空
import re
with open('codecc.txt') as f:
for line in f:
codecc_search = re.search(r'Media Attribute (a): (\s+) (\s+)', f.read())
if (codecc_search):
codecc = codecc_search.group(1)
codecc = str(codecc)
print(f"Codecc={codecc}")
非常感谢任何帮助。提前致谢
【问题讨论】:
-
转义特殊的正则表达式元字符。在这里,
(和)是特殊的,需要转义。此外,要匹配任何非空格,请使用\S,而不是\s。 -
codecc_search = re.search(r'Media Attribute (a): (\S+) (\S+)', f.read())
-
更新上面的评论仍然是NULL结果
-
不,我的意思是
r'Media Attribute \(a\): (\S+) (\S+)',您没有转义特殊的括号,请参阅regex101.com/r/oe0B15/1 -
可能是因为我传入re.search的字符串
标签: python-3.x regex text regex-group