정규표현식 (Regular Expression)
정규표현식이란?
특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어.
정규표현식은 정규문자(문자 그대로의 의미), 메타문자(특별한 의미), 또는 이들의 조합으로 구성 됨.
정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환하는데 용이하다.
정규표현식 메타문자는 아래를 참고.
메타문자 | 설명 |
. | new line (line feed) 를 제외한 1개의 임의의 문자와 일치 함 |
? | 앞에 위치한 정규표현식 또는 문자가 0개 또는 1개인 것과 일치 함. |
* | 앞에 위치한 정규표현식 또는 문자가 0개 이상 반복되는 것과 일치 함. |
+ | 앞에 위치한 정규표현식 또는 문자가 1개 이상 반복되는 것과 일치 함. |
{n} | 정확히 n번 일치 함. |
{n,} | n번 또는 그 이상 일치 함. |
{n,m} | 적어도 n번 일치하지만 m번을 넘지 않는다. n <= 일치 횟수 < m |
^ | 문자열이나 행의 처음을 의미. |
$ | 문자열이나 행의 끝을 의미. |
( ) | 여러 정규표현식을 하나로 묶을 수 있다. |
| | 여러 정규표현식 또는 문자 중에서 하나를 선택 함. |
문자 클래스
하나의 작은 일련의 문자열들을 더 큰 집합의 문자열들과 일치시키도록 함. 정규 표현식 작성에 유용 함.
대소문자가 구분에 유의.
브래킷 | Vim | ASCII | 설명 |
[:lower:] | \l | [a-z] | 알파벳 소문자 집합 |
[:upper:] | \u | [A-Z] | 알파벳 대문자 집합 |
[:alpha:] | \a | [A-Za-z] | 알파벳 문자 집합 |
[:digit:] | \d | [0-9] | 숫자 집합 |
\D | [^0-9] | 숫자가 아닌 문자들의 집합 | |
[:xdigit:] | \x | [A-Fa-f0-9] | 16진수에서 사용할 수 있는 숫자 및 문자 집합 |
[:alnum:] | [A-Za-z0-9] | 알파벳 문자와 숫자 집합 | |
[:word:] | \w | [A-Za-z0-9_] | 알파벳 문자와 숫자에 "_" (밑줄 문자) 추가된 집합 |
\W | [^A-Za-z0-9_] | 알파벳,숫자,_(밑줄 문자) 를 제외한 집합. | |
[:cntrl:] | [\x00-\x1F\x7F] | 제어 문자 집합 | |
[:graph:] | [\x21-\x7E] | 공백 및 제어문자들을 제외한 문자 집합 | |
[:print:] | [\x20-\x7E] | 공백 문자를 포함한 보이는 문자 집합 | |
[:blank:] | \s | [ \x09] | 공백과 탭 문자 집합 |
[:space:] | [ \t\r\n\v\f] | 모든 공백 문자 (Tab, Carriage Return, Line Feed, Vertical Tab, Form Feed) |
정규 표현식 테스트를 위해 주로 사용하는 페이지.