편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2019.09.03

    파이썬 정규표현식 자신있으신분 질문좀 드려요!


    첫번째 문제

    import re
    
    def commaParse(num):
    
        return re.findall('(?=(\d{3}))',num)
    
    a = commaParse('100000000')
    
    print(a)
    

    결과: ['100', '000', '000', '000', '000', '000', '000']

    두번째 문제

    import re
    
    def commaParse(num):
    
        return re.findall('(?=\d{3})',num)
    
    
    a = commaParse('100000000')
    
    print(a)
    

    결과: ['', '', '', '', '', '', '']

    질문드릴게요. 정말 별것도 아니라고 생각하실수 있는데 아무리 찾아봐도 답이 안나오네요...
    일단 컴파일 옵션에서 다른점이 (?=\d{3}), (?=(\d{3})) 안쪽 괄호가 있냐없냐 차이인데 어떤이유로 결과가 저렇게 다른건지 알고싶구요
    첫번째 문제에서 제 예상 답은 긍정 전방탐색으로 ['100', '000', '000'] 이 나와야 하는데 왜 저렇게 나오는지를 모르겟네요...
    그리고 두번째 문제에서도 긍정형 탐색으로 매치가 되면 빈 문자열을 반환하는 걸로 알고있거든요 그래서 ['', '', ''] 이 나올줄 알았는데 왜 더 많이 나올까요....

  • 프로필 audwns269님의 편집
    날짜2019.09.03

    파이썬 정규표현식 자신있으신분 질문좀 드려요!


    첫번째 문제

    import re

    def commaParse(num):

    return re.findall('(?=(\d{3}))',num)
    

    a = commaParse('100000000')

    print(a)

    결과: ['100', '000', '000', '000', '000', '000', '000']

    두번째 문제

    import re

    def commaParse(num):

    return re.findall('(?=\d{3})',num)
    

    a = commaParse('100000000')

    print(a)

    결과: ['', '', '', '', '', '', '']

    질문드릴게요. 정말 별것도 아니라고 생각하실수 있는데 아무리 찾아봐도 답이 안나오네요... 일단 컴파일 옵션에서 다른점이 (?=\d{3}), (?=(\d{3})) 안쪽 괄호가 있냐없냐 차이인데 어떤이유로 결과가 저렇게 다른건지 알고싶구요 첫번째 문제에서 제 예상 답은 긍정 전방탐색으로 ['100', '000', '000'] 이 나와야 하는데 왜 저렇게 나오는지를 모르겟네요... 그리고 두번째 문제에서도 긍정형 탐색으로 매치가 되면 빈 문자열을 반환하는 걸로 알고있거든요 그래서 ['', '', ''] 이 나올줄 알았는데 왜 더 많이 나올까요....