簡體   English   中英

如何使用python正則表達式完全匹配“ 0 0 0”?

[英]How to match “0 0 0” exactly using python regular expression?

我正在嘗試從以下命令輸出中匹配所有“所有零”。

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

我需要滿足以下要求:

我嘗試使用以下代碼:

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

def pass_fail_criteria(x):
    if int(re.findall(r"NUM_FLOWS\n-+[\s\S]*?(\d+)\s*-+"):
        print "FAIL"
    else:
        print "PASS"

print pass_fail_criteria(x)     

但是它拋出以下錯誤:

C:\Users\test\Desktop>python test_regexp.py
  File "test_regexp.py", line 17
    if int(re.findall(r"NUM_FLOWS\n-+[\s\S]*?(\d+)\s*-+"):
                                                         ^
SyntaxError: invalid syntax

C:\Users\test\Desktop>

誰能幫我解決這個問題?

是否可以僅將所有零與精確的空格匹配?

您可以嘗試像

\s*\w+\s+(\d+)\s+(\d+)\s+(\d+)

這似乎匹配

gmail    0   0   0

另一種方法(根據您的要求)是將文字0匹配。 只需將數字匹配替換為0:

\s*\w+\s+(0)\s+(0)\s+(0)

請注意,(括號)用於分組,根據您使用正則表達式的方式,(括號)可能不是必需的。 如果您只是在測試比賽,則可以將其刪除。

然后,您可能應該編寫一個函數以確保匹配全為0。

您可以看看debuggex

正則表達式可視化

Debuggex演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM