-
[나도 코딩] 웹 스크래핑 5. 정규식 기본 1Programing Language/Python 2020. 11. 4. 18:14반응형
웹 스크래핑
정규식 기본
이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다.
1. 정규식 이해하기
정규식(regular expression)이란?
- 정해진 형태를 의미
- 약어로 re라고 함
- ex1) 주민등록번호의 정규식: 앞 숫자 6 - 뒤 숫자 7
- 111111-0300303 (O) -> 올바른 정규식
- dfdfdf-dofiudo (X) -> 올바르지 않은 정규식
- ex) gmail 이메일 주소 정규식: id@gmail.com
- datassung18@gmail.cpm (O) -> 올바른 정규식
- dfdfdf@dfdfdfs@gmailcom (X) -> 올바르지 않은 정규식
2. 정규식 실습
- 특정한 패턴의 정규식을 찾을 때 활용함
정규식 기본 문법
- compile : 정규식을 특정 문자열에 담을 때 사용하는 함수
- match : 주어진 문자열의 처음부터 일치하는지 매칭하는 함수
. (ca.e)
하나의 문자를 의미
ex) care, cafe, case (O) vs caffe (X)
^ (^de)
문자열의 시작을 의미
ex) desk, dear, destinaton (O)
vs fade (X)$ (se$)
문자열의 끝을 의미
ex) case, base (O) vs face (X)
정규식 기본 실습
- Ex) 차가 사람을 치고 도망갔음. 나는 경찰에 신고하면서 도망가는 차 번호를 외웠음.
경찰에서 목격자 진술을 할 때, 차량 번호를 말하려는데 차량 번호가 다 기억나지 않음.- 차량번호 정규식: ascd, nkok, dfds
- 내가 기억하는 차량번호: ca?e
- 경찰은 정규식 활용
Step 1. 정규식을 P에 담기
# 정규식 표현식의 re 모듈 불러오기 import re # 정규식을 p에 담기 p = re.compile("ca.e") # 하나의 문자를 찾기
Step2. 정규식(p)을 주어진 식(m)과 매칭하고 확인하기
- ca.e(정규식)과 주어진 식(care)이 매칭이 되므로 care 출력!
## 매칭되는 경우 # 정규식에 주어진 식 매칭하기 m = p.match("care") # 결과 보기! print(m.group()) # care 출력!
- ca.e(정규식)과 주어진 식(caffe)이 매칭이 되지 않으므로 에러 발생!
## 매칭되지 않는 경우 # 정규식에 주어진 식을 매칭하기 m = p.match("caffe") # 결과 보기! print(m.group()) # 에러 발생!
매칭결과
매칭 O (정규식(p)이 주어진 식(m)과 매치가 됨) 주어진 식(p) 출력
매칭 X (정규식(p)이 주어진 식(m)과 매치가 되지 않음) 에러 발생
정규식 활용해보기
- 매칭여부 함수 만들어 활용하기
# 정규식 매칭 여부를 함수로 만들기 import re def print_match(m): if m: print(m.group()) else: print("매칭되지 않습니다.")
- case1
- 매칭 되는 경우 -> cabe 출력!
p = re.compile("ca.e") m = p.match("cabe") print_match(m)
- case2
- 매칭 안 되는 경우 -> 매칭 되지 않습니다. 출력!
p = re.compile("ca.e") m = p.match("cat") print_match(m)
- case3
- 매칭 안 되는 경우 -> 매칭되지 않습니다. 출력!
p = re.compile("ca.e") m = p.match("good care") print_match(m)
- case4
- 매칭 되는 경우 -> care 출력!
- ca.e까지는 앞에서부터는 일치하기 때문에, 그 이후의 문자열의 형태는 상관이 없음
p = re.compile("ca.e") m = p.match("careless") print_match(m)
이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편3)]을 보고 공부한 내용입니다.
반응형'Programing Language > Python' 카테고리의 다른 글
[나도 코딩] 웹 스크래핑 6. User Agent (0) 2020.11.09 [나도 코딩] 웹 스크래핑 6. 정규식 기본 2 (0) 2020.11.05 Visual Studio code에서 Requests 패키지가 설치가 안될 때 (0) 2020.11.03 [나도 코딩] 웹 스크래핑 4. Requests (0) 2020.11.03 [나도 코딩] 웹 스크래핑 3. 크롬 (0) 2020.11.03