정규식이란 영어 소문자, 대문자, 한글등 자연어 처리를 하기 위해서 사용되는 개념으로 파이썬에서는 re 라이브러리를 이용해서 주로 처리한다
import re
p = re.compile(r'[a-z]+')
m=p.match("python")
print(m)
<re.Match object; span=(0, 6), match='python'>
이런식으로 소문자에 맞는 문자를 매칭시키거나 search, findall, finditer 4가지의 메서드를 사용할수있으며 각 기능은 다음과같다
Method | 목적 |
match() | 문자열의 처음부터 정규식과 매치되는지 조사한다. |
search() | 문자열 전체를 검색하여 정규식과 매치되는지 조사한다. |
findall() | 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려준다. |
finditer() | 정규식과 매치되는 모든 문자열(substring)을 반복 가능한 객체로 돌려준다. |
re.compile도 다양한 메소드 중 하나의 메소드로써 다른 메소드에 비해 비용이 저렴하다는 장점이 있다. 즉, re.split, re.sub, re.search같은 다른 메소드는 한두번 사용할때는 별 차이를 못느끼지만 같은 정규식 패턴을 많이 사용하거나 반복문을 이용할 경우 성능에 부담이 가서 비용이 비싸다는 단점이 있으며 이를 해결하기 위한 메소드가 re.compile 이다. re.compile은 미리 컴파일을 해두고 저장해둘수 있다
r'[a-z]+'과 '[a-z]+'의 차이점은 바로 r의 여부인데 r의 기능은 이스케이프문자에 영향을 안받을수 있다는점이다
이스케이프 문자의 예시는 다음과 같다.
\n | 아래로 줄바꿈(엔터) |
\t | 옆으로 칸 띄움(TAB) |
\b | 백슬레시 한 칸앞을 지운다. |
\r | 현재줄의 맨 앞글자로 이동 |
print(r"\n \t \r을 쓰면 이스케이프 문자 적용불가")
\n \t \r을 쓰면 이스케이프 문자 적용불가
print("\n \t \r을 쓰면 이스케이프 문자 적용")
을 쓰면 이스케이프 문자 적용불가
'PYTHON' 카테고리의 다른 글
[NLP②] 네이버 쇼핑 리뷰 전처리 (0) | 2022.06.26 |
---|---|
[NLP①] 네이버 쇼핑 리뷰 크롤링 (생수) (0) | 2022.06.19 |
[PYTHON 기초] 가변인자 *변수명이란? (0) | 2021.02.27 |
[PYTHON 기초] range vs randrange (0) | 2021.02.27 |
[PYTHON 기초] random모듈 사용 (중복추첨, 중복불가추첨) (0) | 2021.02.27 |