ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [나도 코딩] 웹 스크래핑 6. 정규식 기본 2
    Programing Language/Python 2020. 11. 5. 19:45
    반응형

    웹 스크래핑

    정규식 기본 2


    이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다. 

    웹 스크래핑 6. 정규식 기본편 공부하고 오기

     

    1. 정규식 이해하기

    정규식(regular expression)이란?

    • 정해진 형태를 의미
    • 약어로 re라고 함
    • ex1) 주민등록번호의 정규식: 앞 숫자 6 - 뒤 숫자 7
      • 111111-0300303 (O) -> 올바른 정규식
      • dfdfdf-dofiudo (X) -> 올바르지 않은 정규식

     

    2. 정규식 실습 2

    정규식 기본 코드 복습하기

    ## 복습하기
    import re
    
    # 정규식(원하는 형태) 지정
    p = re.compile("ca.e")
    
    # 매칭하기 
    m = p.match("주어진 식 or 비교할 문자열")
    
    # 확인하기
    print(m.group())

     

    정규식 기본 문법 정리

    • 정규식 지정
    complie 정규식을 지정할 때 사용

     

    • 정규식과 주어진 식 비교
    match 주어진 문자열 처음부터 일치하는지 확인
    search 주어진 문자열 중에 일치하는게 있는지 확인
    findall 일치하는 모든 부분을 리스트 형태로 반환 

     

    • 비교 후 확인
    group 일치하는 문자열 반환
    string 입력받은 문자열을 그대로 출력
    start 일치하는 문자열의 시작 index 출력
    end 일치하는 문자여르이 끝 index 출력
    span 일치하는 문자열의 시작과 끝 index 출력

     

    • 실습1
      • match 함수: 주어진 식이 정규식의 앞에서부터 일치하는지 확인하기
    # 함수
    def print_check(m):
        if m:
            print("m.group :", m.group())
            print("m.string :", m.string)
            print("m.start :", m.start())
            print("m.end :", m.end())
            print("m.span :", m.span())
        else:
            print("매칭되지 않습니다.")
    
    # 정규식 지정
    import re 
    p = re.compile("ca.e")
    
    # match 해보기
    m = p.match("careless")
    
    # 비교 후 확인
    print_check(m)

    결과

    • 정규식: ca.r
    • 주어진 식: careless

    m.group: 일치하는 문자열을 반환함

    care

    m.string: 입력받은 문자열을 그대로 출력

    careless

    m.start: 일치하는 문자열의 시작 index

    0

    m.end: 일치하는 문자열의 끝 index

    4
    m.span: 일치하는 문자열의 시작과 끝 index   (0,4)

     

    • 실습2
      • search 함수: 주어진 식이 정규식을 일치하는지 확인하기
    # 함수
    def print_check(m):
        if m:
            print("m.group :", m.group())
            print("m.string :", m.string)
            print("m.start :", m.start())
            print("m.end :", m.end())
            print("m.span :", m.span())
        else:
            print("매칭되지 않습니다.")
    
    # 정규식 지정
    import re 
    p = re.compile("ca.e")
    
    # search 해보기
    m = p.search("good care cafe")
    
    # 비교 후 확인
    print_check(m)

    결과

    • 정규식: ca.r
    • 주어진 식: good care cafe

    m.group: 일치하는 문자열을 반환함

    care

    m.string: 입력받은 문자열을 그대로 출력

    good care cafe

    m.start: 일치하는 문자열의 시작 index

    5

    m.end: 일치하는 문자열의 끝 index

    9
    m.span: 일치하는 문자열의 시작과 끝 index   (5,9)

     

    • 실습3
      • findall 함수: 매칭되는 문자열 list 형태로 전환
    # 정규식 지정
    import re 
    p = re.compile("ca.e")
    
    # findall 해보기
    m = p.findall("good care cafe")
    
    # 비교 후 확인
    print(m)

    결과

    • 정규식: ca.r
    • 주어진 식: good care cafe
    findall ["care", "cafe"]

     

     

    이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다. 

     

     

    반응형

    댓글

Designed by Tistory.