python 解析输出和 return 特定值

python parse output and return certain value

我的输出如下:

output = test:"<no-cjar> mxy 3044 jpg fasst_st

我想读取输出并仅存储 'mxy' 之后和 'jpg' 之前的值。该值始终是一个整数。

我使用了类似的东西:

value = re.findall(r"mxy \d+", output)

我认为 return 'mxy 3044'。我不太确定这是否是最好的方法。因为我可能不得不再次拆分它。

这是对的吗?有没有其他方法可以让我做同样的事情。提前致谢。

使用capturing group.

value = re.findall(r"mxy\s*(.*?)\s*jpg", output)

\s* 匹配零个或多个空格。或者 r"mxy\s*(\d+)\s*jpg"

示例:

>>> re.findall(r"mxy\s*(.*?)\s*jpg", 'test:"<no-cjar> mxy 3044 jpg fasst_st')
['3044']

替代方法,假设您的字符串格式不变,即它有 mxy 后跟 space 和 4 位数字。

output = "<no-cjar> mxy 3044 jpg fasst_st"
n = int(output.split('mxy')[1][0:6])
print(n) # gives 3044

只是做同样事情的不同方式,但没有正则表达式。