정규표현식 (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) |
정규 표현식 테스트를 위해 주로 사용하는 페이지.