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