본문 바로가기

UNIX_LINUX_C_C++

정규식 / 정규표현식 regex++

거의 모든 프로그래밍 언어에서 정규식 / 정규표현식 (Regular Expressions; Regex)을 지원하지만, C/C++ 에서만은 정규식을 자체적으로 지원하지 않습니다.

C++에서 정규식을 가능케하는 라이브러리가 있습니다. Regex++ 라는 것입니다. Boost C++ Libraries 의 일부분입니다. C++에서 정규식을 구현할 때는 Regex++ 라이브러리가 사실상 표준입니다.

무료이고

* Microsoft Visual C++ 6, 7
* gcc 2.95 (Cygwin, Linux and BSD)
* Borland C++ Builder 4, 5, 6

등의 컴파일러에서 사용할 수 있습니다.

<regex++ 에 대해 더 알아보기>

----------------------------------------------------------

/*
정규 표현식에 적용되는 것은 문자 하나 단위지 문자열 단위가 아니라는 것!
*/

.

개행문자를 제외한 어떠한 문자와도 매칭

*

이전 표현식과 매칭되는 문자가 0개 이거나 그 이상이 있음

+

이전 표현식과 매칭되는 문자가 1개 이거나 그 이상이 있음

?

이전 표현식과 매칭되는 문자가 0개 이거나 1개가 있음

$

문자열의 마지막 문자와 매칭

\

escape 문자 앞에 사용하여 literal문자로 표시

[]

정규식을 그룹으로 묶는다.

, [] 기호 안에 ^가 들어가면 []안에 있는 문자들을 제외 한 모든 문자와 매칭 된다는 뜻이다.

i.e) [^0-9] 숫자를 제외한 모든 문자와 매칭

{}

이전에 표현된 패턴이 얼마나 반복 될 것인가를 지정.

i.e) A{1,3} A 1~3회 연속 되는 패턴과 일치한다.

()

정규표현식들을 그룹화 한다.

*, +, and, | 를 사용하는 복잡한 표현식들을 묶어서 사용할 때 유용하다.

|

|으로 구분되어 있는 문자열중 하나와 매칭된다.

i.e) cow|cat|dog dog와 매칭 된다.

“…”

“ ” 사이에 있는 모든 문자열은 문자 그대로 해석되며 meta-character들은 그 본래의미를 잃는다.