我有一个字典,其中有不同的 Ip 作为键,它的 ping 结果作为值。我只想在 ping 结果通过特定条件时继续我的脚本
假设ping结果如下(字典值):
10 packets transmitted, 10 packets received, 0.00% packet loss
我创建了一个正则表达式并提取了每个值,如下所示:
match = re.search(r'(\d+\s* packet\w* transmitted), (\d+\s* packet\w* received), (\d+\.\d+ packet loss)',str,re.M|re.I)
>>> match.group(3)
'10.00% packet loss'
我已经提取了值..
现在我想写一个带有条件的正则表达式,通过它我将要求脚本仅在我字典中每个 Ip;s 的丢包率小于 5% 时才继续执行。
我可以考虑再次从数据包丢失中获取数字然后进行比较,但只是想知道是否有更好的方法来做到这一点?
如果有任何想法,请分享..
最佳答案
你不需要正则表达式:
s = "10 packets transmitted, 10 packets received, 0.00% packet loss"
trans,recv,loss = s.split(",")
print(trans,recv,loss)
('10 packets transmitted', ' 10 packets received', ' 0.00% packet loss')
print(float(loss.split("%")[0] > 5))
False
如果你有一个字典,使用 all
检查是否每个值都大于 5%
关于Python 正则表达式 - 匹配、比较和决定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27583042/