정규표현식
긴 텍스트 세트에서 찾을 수 있는 문자열이나 패턴을 표현하기 위해 구성하는 기호 또는 문자의 부분집합이다.
정규표현식을 알아야 하는 이유
텍스트 편집기에서 '찾아 바꾸기'를 사용해본 경험이 있을 것이다. 정규표현식은 이 기능을 수행할 수 있도록 도와준다. 이 기술을 익히면 텍스트 분류나 많은 양의 텍스트 데이터를 정제할 때 시간을 크게 절약할 수 있다.
정규표현식 예시
파이썬에서의 정규표현식 사용
모듈 설치
먼저 정규표현식을 사용하기 위한 모듈을 설치해주어야 한다. 표준 re 모듈은 파이썬 설치시 함께 포함되며, 고급 내장 함수를 사용하고 싶다면 regex 라이브러리를 설치하면 된다. colab 같은 경우 따로 설지해줄 필요가 없다.
pip install regex # in bash
!pip install regex # in jupyter notebook
모듈 불러오기
import re
import regex
정규표현식 컴파일하기
RegEx 정규표현식은 패턴 객체로 컴파일될 수 있는데 다양한 동작과 함께 사용될 수 있다. 예를 들어 '[a-z]+' 같은 정규표현식을 컴파일해서 문자열과 매칭하여 그 패턴이 문자열에 있는지 확인할 수 있다.
email_validator = re.compile('[a-z]+')
print(email_validator.match('schoolofaiBellevue')
위 코드의 실행 결과로 <re.Match object; span=(0, 10), match='schoolofai'>
가 나온다. 그러나 정규 표현식에서 '+'를 빼고 실행시킨다면 결과가 어떻게 바뀔까?
email_validator = re.compile('[a-z]')
print(email_validator.match('schoolofaiBellevue')
위 코드의 실행 결과는 <re.Match object; span=(0, 1), match='s'>
가 나온다.
def valid_email(email):
return bool(re.search("^[\w\.\+\-]+\@[\w]+\.[a-z]{2,3}$", email)
valid_email("test@theschool.ai")
여기서 사용된 정규표현식은 아주 간단해서 모든 경우를 다 해결하지 못할 수 있다. 파이썬에는 이메일을 검증하는 데 사용하는 내장 라이브러리들이 있다. 모든 정규 표현식을 기억하기는 힘드므로, 우선 배우고 당면한 문제들은 검색을 통해 해결하자.
참고 링크
DataLit : 데이터다루기
https://www.boostcourse.org/ds103/joinLectures/84465
python 정규표현식 공식 문서
https://docs.python.org/3/library/re.html
'프로젝트 단위 공부 > [부스트코스] DataLit : 데이터 다루기' 카테고리의 다른 글
Ch1-9. 데이터 시각화하기 (0) | 2023.07.21 |
---|---|
Ch1-7. 확률 변수 (0) | 2023.07.20 |
Ch1-6. 이산 확률 (0) | 2023.07.20 |
Ch1-3. 텍스트 데이터 정제 (0) | 2023.07.17 |
Ch1-2. SQL 테크닉 (0) | 2023.07.17 |