2015-02-05 1 views
0

다음 명령 출력에서 ​​"ALL ZEROs"를 모두 일치 시키려고합니다. 나는 다음 코드를 시도"0 0 0"을 정확하게 파이썬 정규식을 사용하여 일치시키는 방법은 무엇입니까?

:

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> 

하는 사람이 나를 도와주세요 수를 이 문제를 해결하려면?

모든 0과 정확한 공백을 일치시킬 수 있습니까?

+3

두 가지 질문이 있습니다, 여기에 ... 처음에 대답합니다 ... ** 브래킷을 종료한다! –

답변

1

당신은 문자 그대로 0 년대에 맞도록이 (요청시)

gmail 0 0 0 

대안에 맞는 것 같다

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

같은 정규식입니다 시도 할 수 있습니다. 제 (괄호) 그룹에 대한 것을

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

참고, 당신은 정규식을 사용하게 될 방법에 따라 필요하지 않을 수도있다 : 그냥 0으로 자리 일치를 교체합니다. 일치하는 항목을 테스트중인 경우 해당 항목을 삭제할 수 있습니다.

그런 다음 당신은 아마 경기가 모두 0

당신은 debuggex 한 번 봐 걸릴 수 있습니다 보장하는 함수를 작성해야한다.

Regular expression visualization

Debuggex Demo

+0

답변 해 주셔서 감사합니다. 함수를 사용하지 않고 모든 정확한 0을 일치시킬 수 있습니까? 내 기본 생각은 로봇 프레임 워크 "Redexp와 일치하지 않아야한다"라는 키워드와 함께 사용하는 것입니다. URL "http://robotframework.googlecode.com/hg/doc/libraries/BuiltIn.html?r=2.6.1#Should%20Match%20Regexp" – rcubefather

+0

\ s + \ w + \ s + (0) \ s + (0) \ s + (0) ... 사용할 수 있습니까? 그게 유효합니까? – rcubefather

+0

물론입니다. debuggex 링크를 따라 복사 한 후 일부 코드를 붙여넣고 일치 작업을 수행하십시오. –