정규표현식이란

 

정규표현식(regular expression)은 문자열을 검색하거나 대체하는데 사용되는 패턴이다.

고정된 문자열에 사용할 수도 있고, 복잡한 문자열의 패턴을 설명할때도 사용 가능하다.

 

언제 사용하는가

- 주어진 문자열이 규칙에 맞는지 확인할 때

- 주어진 문자열에서 특정 패턴의 문자열을 검색할 때

- 주어진 문자열을 특정 패턴의 문자열로 치환할 때

- 문자열에서 특정패턴에 해당하는 문자열만 분리할 때

- 데이터 유효성 검사

 

 

 

정규표현식 문법

 

정규표현식은 문법의 종류나 처리하는 엔진이 여러 종류가 있기때문에 아래에는 기본적인 문법만 정리해둔다.

문법 설명
. 임의의 한 문자, 예를들어 a.b는 "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는 단어의 끝을 의미

 

 

 

 

 

※ 참고 문헌

https://maloveforme.tistory.com/196

https://modoocode.com/303