본문 바로가기

소프트웨어/개발관련

01. 정규표현식(正規表現式, Regular Expression)

문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단으로 정규표현식은 하나의 언어라고도 할 수 있을 정도로 강력하지만, 그 강력함만큼이나 이해하기 어렵다. 

정규표현식은 표준인 POSIX의 정규표현식과 POSIX 정규표현식에서 확장된 Perl방식의 PCRE가 대표적이며, 이외에도 수많은 정규표현식이 존재하며 정규표현식 간에는 약간의 차이점이 있으나 거의 비슷합니다. 정규표현식에서 사용하는 기호를 Meta문자라고 합니다. Meta문자는 표현식 내부에서 특정한 의미를 갖는 문자를 말하며, 공통적인 기본 Meta문자의 종류로는 다음과 같습니다

관련 문법 내용

 

 

기본 메타 문자

.

 모든 문자와 일치 (한 문자)

|(버티컬 바)

 왼쪽 혹은 오른쪽과 일치

[^]

 문자 집합 구성원 중 하나와 일치

-

 문자 집합 구성원을 제외하고 일치

\

 다음에 오는 문자를 이스케이프

수량자

*

 문자가 없는 경우나 하나 이상 연속하는 문자 찾기

*?

 게으른 * 문자

+

 문자 하나 이상 찾기

+?

 게으른 + 문자

?

 문자가 없거나 하나인 문자 찾기

{n}

 정확히 요소와 n번 일치

{m, n}

 요소와 m에서 n번 일치

{n, }

 요소와 n번 이상 일치

{n, }?

 게으른 {n, }

위치 지정

^

 문자열의 시작과 일치

\A

 문자열의 시작과 일치

$

 문자열의 끝과 일치

\Z

 문자열의 끝과 일치

\<

 단어의 시작과 일치

\>

 단어의 끝과 일치

\b

 단어의 경계와 일치

\B

 \b와 반대로 일치

특수한 문자

[\b]

 역 스페이스

\c

 제어문자와 일치

\d

 모든 숫자와 일치

\D

 /d와 반대

\f

 페이지 넘기기 (form feed)

\n

 줄바꿈

\r

 캐리지 리턴

\s

 공백 문자와 일치

\S

 \s와 반대로 일치

\t

 

\v

 수직 탭

\w

 영숫자 문자나 밑줄과 일치

\W

 \w와 반대로 일치

\x

 16진수 숫자와 일치

\0 (숫자)

 8진수 숫자와 일치

역참조와

전후방 탐색

( )

 하위 표현식 정의

\1(숫자)

 첫번째 일치한 하위 표현식,

 두번째로 일치한 하위 표현식은 \2로 표기하는 방식

?=

 전방탐색

?<=

 후방탐색

?!

 부정형 전방탐색

?<!

 부정형 후방탐색

?(backreference)true

 조건 지정

?(backreference)true|false

 else 표현식 조건 지정 

대소문자 변환

\E

 \L 혹은 \U 변환을 끝냄

\I

 다음에 오는 글자를 소문자로 변환

\L

 \E를 만날 때까지 모든 문자를 소문자로 변환

\u

 다음에 오는 글자를 대문자로 변환

\U

 \E를 만날 때까지 모든 문자를 대문자로 변환

변경자

(?m)

 다중행 모드