본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[딥러닝을이용한 자연어 처리 입문] 0205 정규 표현식 Regular Expression

by manga0713 2021. 5. 15.

1. 정규 표현식 문법과 모듈 함수

 

1) re 정규 표현식 문법

 

  • 특수문자 설명
. 한 개의 임의의 문자를 나타냅니다. (줄바꿈 문자인 \n는 제외)
? 앞의 문자가 존재할 수도 있고, 존재하지 않을 수도 있습니다. (문자가 0개 또는 1개)
* 앞의 문자가 무한개로 존재할 수도 있고, 존재하지 않을 수도 있습니다. (문자가 0개 이상)
+ 앞의 문자가 최소 한 개 이상 존재합니다. (문자가 1개 이상)
^ 뒤의 문자로 문자열이 시작됩니다.
$ 앞의 문자로 문자열이 끝납니다.
{숫자} 숫자만큼 반복합니다.
{숫자1, 숫자2} 숫자1 이상 숫자2 이하만큼 반복합니다. ?, *, +를 이것으로 대체할 수 있습니다.
{숫자,} 숫자 이상만큼 반복합니다.
[ ] 대괄호 안의 문자들 중 한 개의 문자와 매치합니다. [amk]라고 한다면 a 또는 m 또는 k 중 하나라도 존재하면 매치를 의미합니다. [a-z]와 같이 범위를 지정할 수도 있습니다. [a-zA-Z]는 알파벳 전체를 의미하는 범위이며, 문자열에 알파벳이 존재하면 매치를 의미합니다.
[^문자] 해당 문자를 제외한 문자를 매치합니다.
l AlB와 같이 쓰이며 A 또는 B의 의미를 가집니다.

 

  • 역 슬래쉬(\) 문자 규칙
\\ 역 슬래쉬 문자 자체를 의미합니다
\d 모든 숫자를 의미합니다. [0-9]와 의미가 동일합니다.
\D 숫자를 제외한 모든 문자를 의미합니다. [^0-9]와 의미가 동일합니다.
\s 공백을 의미합니다. [ \t\n\r\f\v]와 의미가 동일합니다.
\S 공백을 제외한 문자를 의미합니다. [^ \t\n\r\f\v]와 의미가 동일합니다.
\w 문자 또는 숫자를 의미합니다. [a-zA-Z0-9]와 의미가 동일합니다.
\W 문자 또는 숫자가 아닌 문자를 의미합니다. [^a-zA-Z0-9]와 의미가 동일합니다.

 

2) 정규표현식 모듈 함수

 

  • 모듈 함수설명
re.compile() 정규표현식을 컴파일하는 함수입니다. 다시 말해, 파이썬에게 전해주는 역할을 합니다. 찾고자 하는 패턴이 빈번한 경우에는 미리 컴파일해놓고 사용하면 속도와 편의성면에서 유리합니다.
re.search() 문자열 전체에 대해서 정규표현식과 매치되는지를 검색합니다.
re.match() 문자열의 처음이 정규표현식과 매치되는지를 검색합니다.
re.split() 정규 표현식을 기준으로 문자열을 분리하여 리스트로 리턴합니다.
re.findall() 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열을 찾아서 리스트로 리턴합니다. 만약, 매치되는 문자열이 없다면 빈 리스트가 리턴됩니다.
re.finditer() 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열에 대한 이터레이터 객체를 리턴합니다.
re.sub() 문자열에서 정규 표현식과 일치하는 부분에 대해서 다른 문자열로 대체합니다.

 

 

5. 정규 표현식 텍스트 전처리 예제

 

 

6. 정규 표현식을 이용한 토큰화

 

 

nlp_0205_regular expression 정규 표현식.ipynb
0.01MB

 

- 출처 : [딥러닝을이용한 자연어 처리 입문] 0205 정규 표현식 Regular Expression