[NLP] 정규식
의미(위키백과 정리 + 책)
정규 표현식(regular expression)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 주로 문자열 검색 및 취환에 쓰인다.
검색 엔진, 워드 프로세서와 문자 편집기의 찾아 바꾸기 대화상자, 리눅스의 grep, awk와 같은 문자 처리 유틸리티, 어휘분석에 사용된다.
문법
- 기본 및 확장 표준 문법
문자 | 기능 | 설명 |
---|---|---|
. | 문자 | 1개의 문자 일치 |
[ ] | 분리 | 괄호 안 사이의 문자 중 하나 선택 |
[^] | 부정 | 괄호 안에 쓰이며, “^” 다음 문자 제외 |
^ | 처음 | 문자열이나 행의 처음 |
$ | 끝 | 문자열이나 행의 끝 |
( ) | 하위식 | 여러 식을 하나로 묶음 |
\n | 일치하는 n번째 패턴 | 일치하는 패턴들 중 n번째 선택 |
* | 0회 이상 | “*” 다음에 오는 문자가 0개 이상 포함 |
? | 0 또는 1회 | ”?” 다음에 오는 문자 0개 또는 1개 포함 |
+ | 1회 이상 | ”+” 다음에 오는 문자 1회 이상 포함 |
{n} | n회 | 문자 n회 포함 |
{min,} | min회 이상 | 문자 min회 이상 포함 |
{min, max} | min회 이상 max회 이하 | 문자 min회 이상 max회 이하 포함 |
| | 선택 | 여러 식 중에서 하나 선택 |
- 범위 문법
정규식 | 범위 | 설명 |
---|---|---|
[a-z] | 소문자 | |
[A-Z] | 대문자 | |
\d | [0-9] | 숫자 |
\D | [^0-9] | 숫자가 아닌 문자 |
\w | [a-zA-Z0-9_] | 알파벳, 숫자, 언더바 |
\W | [^\w] | 알파벳, 숫자, 언더바가 아닌 문자 |
\s | [ \r\t\n\f] | 공백 문자 |
\S | [ ^\s] | 공백이 아닌 문자 |
정리 및 다음 문서
간단하게, 정규식의 의미와 문법을 정리했다. 다음 챕터에서는 finite-state automaton를 통해 어떻게 정규식이 실행되는지 보려고 한다.