如何在命令输出的同一行中查找同时存在Idle和false的内容
适配方案
方案1:正则匹配(代码最简)
直接通过正则规则限制两个关键词必须出现在同一行,同时忽略中间的空格、分隔符、制表符等格式变化,全程不会修改原输出内容:
import re # 可根据需求调整匹配严格度 # 如需严格匹配小写false,将[Ff]alse改为false即可 if re.search(r'Idle[^\n]*?[Ff]alse', output): print("Blablah")
正则规则说明:
[^\n]*?匹配除换行符外的任意字符,确保Idle和false在同一行- 自动适配两个关键词中间的任意空格、横杠、制表符等格式变动
方案2:逐行临时校验(稳定性最高)
仅临时拆分输出内容做判断,不会修改原output变量,完全不影响后续使用:
has_target = False # splitlines()仅生成临时的行列表,不会改动原output字符串 for line in output.splitlines(): # 转换为小写匹配可兼容大小写格式的false,不需要可去掉.lower() if 'Idle' in line and 'false' in line.lower(): has_target = True break if has_target: print("Blablah")
该方案完全不依赖输出的分隔符格式,只要同一行同时存在两个目标字段即可命中,适配性最强。
内容的提问来源于stack exchange,提问作者aldegalan
相关产品推荐
相关产品推荐

