[英]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.