정규 표현식

정규 표현식이란?

정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다.
정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있다.

정규 표현식은 현재 많은 프로그래밍 언어, 텍스트 편집기등에서 기능이 제공되고 있다.
일부는 Perl, JavaScript, Rooby, Tcl 처럼 문법에 내장되어 있는 경우도 있고, Java, Python, C, C++(C++ 11 이후)에서는 표준 라이브러리를 통해 제공한다.

자세한 문법이나 정보는 정규 표현식 위키백과 링크를 참고하면 될 것 같다.

간단하게 C++의 정규 표현식을 이용해서 .com, .net, .co.kr 로 끝나는 형식의 이메일을 검사하는 코드를 만들어 본다면 아래와 같이 만들 수 있다.


C++은 정규 표현식을 사용하기 위해서 regex 라이브러리를 사용해야 한다.

위의 email 변수의 초기화 인자값으로 들어간 "[a-z0-9]+@[a-z]+(.com|.net|.co.kr)" 문자열이 정규 표현식이다.
이 정규 표현식을 해석 해 보자면,

[a-z0-9]+          -> 영어 소문자 또는 숫자가 1개 이상 있다는 의미이다.
@                   -> 이 문자와 일치하는 문자가 있다는 의미이다.
[a-z]+              -> 영어 소문자가 1개 이상 있다는 의미이다.
(.com|.net|.co.kr) -> .com 또는 .net 또는 .co.kr 문자열이 있다는 의미이다.

결국 합쳐진 문자열이 의미하는 내용은
"처음에 영어 소문자 또는 숫자가 1개 이상 있고 그 다음에 @ 문자가 있고 이 다음에 영어 소문자가 1개이상 있고 그 다음에 .com 또는 .net 또는 .co.kr 문자열이 있다."
라는 내용이다.


댓글