데이터 분석/자연어처리

자연어 처리 기초 - 정규표현식 알아보기(정리, 실습편)

Jerry Jun 2021. 1. 16. 15:11
728x90

Regular Expression

데이터 정제에 필요한 기술 중에 하나가 정규식(정규표현식)이다. 이전 게시물에 보았던 전각문자를 반각문자로 바꾸는 데에도 주로 사용되는 기술이다. Regular Expression 을 사용하는 방법은 크게 두가지가 있다.

  • Text Editor (VSCode, Sublime Text...)

  • Python 등을 활용한 모듈 사용

이제 정규식의 첫 걸음을 시작해보자.

 


[ ]

대괄호 예시

대괄호이다. 정규식에서 가장 많이 쓰이는 기호 중에 하나이다.

대괄호 안에 있는 문자(숫자 등)를 매칭해준다. 만약 정규식이 [ab279] 라고 설정 되어있을 때 'a', 'b', '2', '7', '9' 중에 하나라도 들어가있는 문장은 매치에 성공한다.

 

대괄호 안에 문자 및 숫자들만이 아니라 기호들이 다양하게 들어간다.

 

^ ... $

^ 기호는 문자의 시작을 의미하고 $ 기호는 문장의 끝을 의미한다. 정규식의 앞과 뒤에 적어준다면 그 문장 내의 정규식에 해당하는 문장을 매치해준다.

 

-

- (대쉬) 의 기능은 이어지는 느낌이라고 보면 된다. [1-5a-d] 를 예시로 든다면 1부터 5까지와 a 부터 d 까지를 나타낸다고 볼 수 있다. [1-5a-d] 와 [12345abcd] 는 같은 기능을 한다.

 

^

^ 기호는 not 의 의미를 나타낸다. 이 기호를 쓴다면 해당이 안되는 나머지들이 대상이 된다고 생각하면 된다. [^1-5a-d] 라면 1부터 5의 숫자와 a 부터 d의 알파벳을 제외한 단어들이 매치된다.

 

 

?

? (물음표) 기호는 "x" 기호가 0번 혹은 1번 나타났을 때 매치되는 기호이다.

 

 

+

+ (플러스) 기호는 "x" 기호가 1번 이상 나타났을 때 매치되는 기호이다.

 

 

*

* 기호는 0 번 혹은 1번 이상 나타났을 때 매치되는 기호이다.

 

 

.

. 기호는 아무거나 다 매치된다. 띄어쓰기(공백) 또한 매치된다.

 


{ }

대괄호를 알아보았다면 다음에 알아볼 것은 중괄호이다. 중괄호는 반복을 의미한다.

  • {5} : 5번 반복
  • {5,} : 5번 이상 반복
  • {5, 10} : 5 ~ 10번 반복

# 기타 문자 클래스

정규 표현식 설명
\d 숫자를 매치한다. [0-9] 와 같음
\D 숫자가 아닌 것과 매치한다. [^0-9] 와 같음
\s 공백문자. space 나 tab 같은 공백과 매치한다.
\t, \n, \r, \f, \v 와 같음.
\S \s에 해당 안되는 것과 매치된다.
\w 문자 + 숫자와 매치된다. [a-zA-Z0-9_]와 같다.
\W \w 와 반대된다.
300x250