[Python] 정규표현식이란?
파이썬을 처음 배우고 4년 만에 정규표현식을 공부해봤다.
정규표현식은 잘 쓸 일 없고, 어렵고, 진입장벽이 높은 내용이라고 생각해왔는데, '정규표현식'이라는 이름이 추상적이어서 잘 와닿지 않기 때문인 것 같다.
이름은 무시하고 '아 이건 이럴 때 쓰는 거구나'를 이해하니 별 것 아니었고, 매우매우 유용한 것 같다.
정규표현식(Regular Expression)이란?
간단히 말하면
문자열을 패턴에 초점을 맞춰 특정한 형식으로 표현한 것
이고,
쉽게 말하면
abbbbc와 같은 문자열을 [ab{4}c]와 같이 표현하는 형식
이다.
정규표현식을 사용하면 "abc", "abbc", "abbbc" 세 문자열을 하나의 정규표현식 [ab{1,3}c] (또는 [ab*c]나 [ab+c])로 표현할 수도 있다.
정규표현식을 쓰는 경우?
그럼 이 복잡하게 생긴 건 어디에 쓰는고 하니, 데이터 전처리에 유용하게 사용된다.
예를 들어, "이름 주민번호 나이" 형식의 문자열 데이터가 여러 개 있을 때, split 함수는 물론이고 조건문이나 반복문같은 제어문을 안 쓰고, 정규표현식만으로도 주민번호 데이터만 뽑아낼 수 있다.
관련 예제는 아래 링크를 참고해보자.
07-1 정규 표현식 살펴보기
정규 표현식(Regular Expressions)은 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 곳에서 사용한다. 정 ...
wikidocs.net
파이썬에서 정규표현식 사용하기
기본적으로는 정규표현식을 쓸 수 있게 해주는 re 모듈을 import 해주고, 원하는 정규표현식을 re.compile()로 생성해주면 된다.
import re
r = re.compile("[a-z]+")
아래 예제는 문자열 Hello가 정규표현식 r에 부합하는지 아닌지를 판별해주는 프로그램이다.
import re
r = re.compile("[a-z]+")
r.match("Hello")
if(r):
print("정규표현식에 부합")
else:
print("정규표현식에 부합하지 않음")
실행 결과
정규표현식에 일치
위 예제에서 [a-z]+는 뭐고 match는 뭐길래 "Hello"가 "[a-z]+"에 부합한다는 건가 싶다면,
정규표현식의 문법과 모듈이 잘 정리되어있는 아래 링크를 참고하자.
05) 정규 표현식(Regular Expression)
텍스트 데이터를 전처리하다보면, 정규 표현식은 아주 유용한 도구로서 사용됩니다. 이번 챕터에서는 파이썬에서 지원하고 있는 정규 표현식 모듈 re의 사용 방법과 NLTK를 통 ...
wikidocs.net