我的输出如下:
output = test:"<no-cjar> mxy 3044 jpg fasst_st
我想读取输出并仅存储'mxy'之后和'jpg'之前的值。该值始终为整数。
我使用了类似的东西:
value = re.findall(r"mxy \d+", output)
我认为会返回'mxy 3044'。如果这是最好的方法,我不太确定。因为我可能不得不再次拆分它。
这是对的吗?还有另一种方法可以做同样的事情。提前谢谢。
答案 0 :(得分:1)
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']
答案 1 :(得分:0)
Alterantive方法,假设你的字符串的格式没有改变,即它有mxy后跟空格和4位数字。
output = "<no-cjar> mxy 3044 jpg fasst_st"
n = int(output.split('mxy')[1][0:6])
print(n) # gives 3044
做同样事情的方式不同,但没有正则表达式。