Programing Language/Python

[나도 코딩] 웹 스크래핑 6. 정규식 기본 2

Data-SSung 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)]을 보고 공부한 내용입니다. 

 

 

반응형