정규표현식이란 |
정규표현식(regular expression)은 문자열을 검색하거나 대체하는데 사용되는 패턴이다.
고정된 문자열에 사용할 수도 있고, 복잡한 문자열의 패턴을 설명할때도 사용 가능하다.
언제 사용하는가
- 주어진 문자열이 규칙에 맞는지 확인할 때
- 주어진 문자열에서 특정 패턴의 문자열을 검색할 때
- 주어진 문자열을 특정 패턴의 문자열로 치환할 때
- 문자열에서 특정패턴에 해당하는 문자열만 분리할 때
- 데이터 유효성 검사
정규표현식 문법 |
정규표현식은 문법의 종류나 처리하는 엔진이 여러 종류가 있기때문에 아래에는 기본적인 문법만 정리해둔다.
문법 | 설명 |
. | 임의의 한 문자, 예를들어 a.c는 "abc", "a1c", "a!c"등과 일치한다. |
* | 앞의 요소가 0번이상 반복됨을 의미, 예를들어 a*는 "", "a", "aa", "aaa"등과 일치한다. |
+ | 앞의 요소가 1번이상 반복됨을 의미, 예를들어 a+는 "a", "aa", "aaa"등과 일치하며 ""와는 일치하지 않는다. |
? | 앞의 요소가 0번 혹은 1번 나타남을 의미, 예를들어 a?는 "", "a"와 일치한다. |
\d | 숫자를 의미, \d는 "0"에서 "9"까지의 숫자들과 일치한다. |
\w | word character를 의미, \w는 알파벳, 숫자, 밑줄( _ )과 일치한다. |
\s | 공백문자를 의미, \s는 탭, 캐리지리턴, 줄바꿈, 공백등과 일치한다. |
\b | 단어 경계를 의미, \b는 단어의 시작과 끝을 구분한다. |
[...] | 대괄호 안의 어떤 문자라도 일치, [abc]는 "a", "b", "c"와 일치한다. |
[^...] | 대괄호 안의 문제를 제외한 어떤문자라도 일치, [^abc]는 "a", "b", "c"를 제외한 모든 문자와 일치 |
^ | 문자열 또는 줄의 시작을 의미, ^a는 "a"로 시작하는 문자열과 일치 |
$ | 문자열 또는 줄의 끝을 의미, a$는 "a"로 끝나는 문자열과 일치 |
{ } | 자릿수 지정, \d{4}는 4자리 숫자를 의미 |
( | ) | (0 | 5) 는 0 또는 5라는 의미이고, (0 | 5)+면 0 또는 5로만 이루어진 숫자라는 의미 |
예시)
100+ : 10 뒤에 0이 하나 이상 나오는 문자열 ex) "1000", "10000", "10000000"
1+ : 1이 하나 이상 나오는 문자열 ex) "1", "11", "111"
100+1+ : 10뒤에 0이 하나이상 있고 그 뒤에 1이 하나이상 있는 문자열 ex) 100011
01 : 01
100+1+ | 01 : 100+1+ 패턴 또는 01패턴
(100+1+ | 01)+ : 위 패턴이 한번이상 반복되는 문자열
전화번호 표현 예시)
\b010-\d{4}-\d{4}\b
\b는 문자열이 "010-"로 시작함을 의미하며, "010-"가 다른 숫자 또는 문자에 의해 중간에 끼어있지 않음을 보장
010은 문자열 "010"을 의미
-는 문자열 "-"를 의미
\d{4}는 4자리 숫자를 의미
\b는 단어의 끝을 의미
※ 참고 문헌