如何使用python正则表达式匹配中间的数字?

如何使用python正则表达式匹配中间的数字?,python,regex,python-2.7,Python,Regex,Python 2.7,我试图为以下命令输出设置通过/失败标准 router-7F2C13#show app stats gmail on TEST/switch1234-15E8CC -------------------------------------------------------------------------------- APPLICATION BYTES_IN BYTES_OUT NUM_FLOWS --------------

我试图为以下命令输出设置通过/失败标准

router-7F2C13#show app stats gmail on TEST/switch1234-15E8CC
--------------------------------------------------------------------------------
     APPLICATION           BYTES_IN         BYTES_OUT           NUM_FLOWS
--------------------------------------------------------------------------------
  gmail                0                 0                  0
--------------------------------------------------------------------------------
router-7F2C13#
我只需要匹配“NUM_FLOWS”。如果为“零”,则视为失败。 如果其“大于或等于1”,则视为通过

FAIL criteria example:
======================

router-7F2C13#show app stats gmail on TEST/switch1234-15E8CC
--------------------------------------------------------------------------------
     APPLICATION           BYTES_IN         BYTES_OUT           NUM_FLOWS
--------------------------------------------------------------------------------
  gmail                0                 0                  0
--------------------------------------------------------------------------------
router-7F2C13#



PASS criteria example: (Greater than or equal to 1)
======================

router-7F2C13#show app stats gmail on TEST/switch1234-15E8CC
--------------------------------------------------------------------------------
     APPLICATION           BYTES_IN         BYTES_OUT           NUM_FLOWS
--------------------------------------------------------------------------------
  gmail                0                 0                  1
--------------------------------------------------------------------------------
router-7F2C13#
请指导我怎么做

NUM_FLOWS\n-+[\s\S]*?(\d+)\s*-+
你可以试试这个,抓拍

见演示


由于这是命令输出,您可以将命令的输出导入Python脚本,并使用
fileinput
模块对其进行处理:

import fileinput
for line in fileinput.input():
    if fileinput.filelineno() == 5:
        # split the line on whitespace, and take the last item.
        x = int(line.split()[-1])
        print('PASS' if x else 'FAIL')
        break # so it won't process more lines past 5
包含通过标准的
pass.xxx
和包含不通过标准的
fail.xxx
的结果:

c:\> type fail.xxx | check.py
FAIL

c:\> type pass.xxx | check.py
PASS

你试过自己做些什么吗?你可能不需要正则表达式。只需在目标行上使用
str.split()
方法,并获取结果列表的最后一个元素。@PM 2Ring。。谢谢你的评论。我是python新手。请告诉我如何使用split命令执行此操作。这些是单独的文件吗?“gmail”行总是文件中的第五行吗?@markTolonen。是的,总是第五行。谢谢你的回答。但它总是打印为“通行证”。你能检查一下这个吗。如果为零,则应打印“FAIL”。
c:\> type fail.xxx | check.py
FAIL

c:\> type pass.xxx | check.py
PASS