정규 표현식

위키백과에 따르면 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.

어떤 문자열을 특정 패턴에 부합한지 검사하거나 특정 패턴에 부합한 문자열을 출력하는데 사용된다.

대부분의 프로그래밍 언어에서 지원하며, 일부(perl, js, ruby)는 내장되어 있고, 다른 일부(python, c, c++, java)는 표준 라이브러리로 제공한다.

매번 공부 할만큼 했다 생각해도 가끔 사용하다보니 까먹게 되어 찾아볼 목적으로 정리 해 보았다.

공부 하는데 도움되는 사이트

RegExr 을 이용하여 아래 기호들을 적용해보며 공부

기호(표현식)와 의미

기호
의미

^

문자열의 처음

$

문자열의 끝

.

한개의 문자

*

0번 이상

+

반복 (1번이상)

{}

반복

?

존재 여부 ( 있을 수도 있고 없을 수도 있다 )

|

OR ( 두 식중 한개 )

[ ]

문자 선택 (괄호 안의 문자 중 한개)

[^ ]

부정 ( 괄호 안의 문자들을 선택 안함 )

[a - z]

a 부터 z중 한개

( )

그룹을 표현 (포획 괄호)

(?:)

그룹을 표현 ( 비포획 괄호 )

(?=x)

뒤에 x가 와야한다

(?!x)

뒤에 x가 오면 안된다

n은 1부터 9까지 가능하며, 순서에 맞는 포획괄호 재사용

\b

문자와 공백 사이 (word boundary)

\B

문자와 공백 사이 (word boundary)가 아니다

\d

숫자

\D

숫자가 아니다

\s

공백 (space)과 탭

\S

공백과 탭이 아니다

\w

word( 알파벳, 숫자, _ ) 중에 하나

\W

word가 아니다

줄바꿈

캐리지 리턴

tab

\v

수직 tab (캐리지리턴 + 라인 피드)

\0

null

flag 옵션

flag
의미

g

global ( 대상 문자열내 모든 패턴 검색 )

i

insensitive (대상 문자열에서 대/소문자 식별하지 않는다)

m

multiline ( 줄바꿈이 포함된 여러라인의 문자열일 경우에도 검색)

사용 예

| 기호 | 의미 | | :-----------: | :----------------------------------------: | --------------------------- | | ^x | 문자열이 문자 x로 시작된다 | | x$ | 문자열이 문자 x로 끝난다 | | . | 모든 문자 | | x. | 2글자 문자중 x로 시작하는 문자 | | .x. | 3글자 문자중 가운데 x인 문자 | | x+ | x가 1번 이상 반복된다. x{1,}와 같은 의미 | | x* | x가 0번 이상이다. x{0,}와 같은 의미 | | x? | x가 있을 수도 있고 없을 수 있다. | | abc | qwe | 문자 abc와 문자 qwe 중 한개 | | [abc] | a,b,c중 한 문자 | | [^abc] | a,b,c가 포함되지 않은 문자 | | [a - z] | a 부터 z중 한개 | | a(?=x) | 뒤에 x가 있는 a | | a(?!x) | 뒤에 x가 없는 a | | {m} | m번 반복 | | {m,} | m번 이상 반복 | | {m,n} | m번 이상 n번 이하 반복 | | \1 | 첫번째 포획괄호 재사용 | | \2 | 두번째 포획괄호 재사용 |

Last updated