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