2012-08-22 5 views
6

파이썬의 Regex 라이브러리에서 이상한 행동을 감지하고 뭔가 잘못하고 있는지 확실하지 않습니다.Python Regex의 버그? (re.sub.MULTILINE과 함께)

re.sub()을 사용하여 정규식을 실행하는 경우 re.MULTILINE입니다. 처음 몇 번만 대체하는 것 같습니다. re.MULTILINE을 끄거나 re.subn(..., count = 0, flags = re.MULTILINE)을 사용하거나 re.compile(..., re.MULTILINE)을 사용하여 정규식을 컴파일하면 모든 문제가 대체됩니다.

저는 Ubuntu 12.04에서 Python 2.7을 실행하고 있습니다. (2.5 다른 re.subn() 제외) 동작을 확인하는 스크립트 - 터미널

  • codepad에서 출력 -

    컴퓨터에서이 동작을 확인하거나 거부 할 수 있습니까?

    EDIT : 깨달았습니다. 저는 이것을 파이썬 버그 추적기에 게시해야합니다. 편집 2 : 문제를보고 : http://bugs.python.org/msg168909

  • 답변

    16

    사용

    re.sub(pattern, replace, text, flags=re.MULTILINE) 
    

    대신 코드에서 버그가

    re.sub(pattern, replace, text, count=re.MULTILINE) 
    

    에 해당

    re.sub(pattern, replace, text, re.MULTILINE) 
    

    의.

    re.sub()

    +0

    아, 음, 하하 그것을 설명을 참조하십시오. 문제를 마감했습니다. 고맙습니다! – eacousineau

    +0

    나는'flags ='없이're.I'를 꽤 오랫동안 사용하고 있었고 이것을 모르고있었습니다. 문서 도구는 심각한 실수라고 생각되는 행동에 대해 경고하지 않습니다. 나는'flags'와'count'를 명시 적으로 사용하는 사람을 본 기억이 없습니다. – minerals

    +0

    @ minerals : 답변에서 링크를 클릭하면; 당신은're.sub (pattern, repl, string, count = 0, flags = 0)'함수의 시그니쳐를보아야하고, 문서는'count' 매개 변수의 의미를 설명한다. – jfs