본문 바로가기

Dev

정규표현식 요약지 (Regex Cheatsheet)

https://regexr.com/

 

💫 문자, 문자 클래스

.

. : 줄바꿈을 제외한 임의의 문자 한 개와 매치

더보기

예문

123456789

 

정규표현식

.5.

 

결과

123456789

 

[]

[] : 대괄호 내부에 포함된 문자 중 하나와 매치

더보기

예문

hello, world!

 

정규표현식

[aeiou]

 

결과

hello, world!

+) 대괄호 내에 -를 사용하여 범위를 쉽게 지정할 수 있다.

[0-9]는 [0123456789]와 같다.

더보기

예문

hello, world!

 

정규표현식

[a-z]

 

결과

hello, world!

 

[^]

[^] : 대괄호 내부에 포함되지 않은 문자 중 하나와 매치

더보기

예문

hello, world!

 

정규표현식

[^aeiou]

 

결과

hello, world!

 

\d, \D

\d : 숫자를 나타내는 집합으로 [0-9]과 같다.

더보기

예문

010-1234-5678

 

정규표현식

\d

 

결과

010-1234-5678

\D : 숫자가 아닌 문자를 나타내는 집합으로 [^0-9]와 같다.

더보기

예문

010-1234-5678

 

정규표현식

\D

 

결과

010-1234-5678

 

\w, \W

\w : 알파벳과 숫자, _를 나타내는 집합으로 [a-zA-Z0-9_]과 같다.

더보기

예문

let _ = 100.0 - 12.3

 

정규표현식

\w

 

결과

let _ = 100.0 - 12.3

\W : \w가 아닌 모든 집합으로 [^a-zA-Z0-9_]과 같다.

더보기

예문

let _ = 100.0 - 12.3

 

정규표현식

\W

 

결과

let _ = 100.0 - 12.3

 

\s, \S

\s : 공백문자를 나타내는 집합

\S : 공백문자가 아닌 문자를 나타내는 집합

 

\b, \B

\b : 단어 경계 바이너리 메타문자

더보기

예문

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

 

정규표현식

\bt

 

결과

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

 

정규표현식

t\b

 

결과

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

\B : 단어 경계가 아닌 바이너리 메타문자

더보기

예문

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

 

정규표현식

\Bt

 

결과

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

 

💫 반복자

*, +, ?

* : 앞의 문자나 그룹이 0번 이상 반복

+ : 앞의 문자나 그룹이 1번 이상 반복

? : 앞의 문자나 그룹이 0번 또는 1번만 등장

더보기

예문

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

 

정규표현식

m*y

m+y

m?y

 

결과

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

Lorem Ipsum is simply dummy text of the printing and typesetting industry.

 

{}

{n} : 앞의 문자나 그룹이 n번 반복

더보기

예문

010-1234-5678
031-123-4567
02-123-4567

 

정규표현식

[0-9]{3}-[0-9]{4}-[0-9]{4}

 

결과

010-1234-5678
031-123-4567
02-123-4567

{n,} : 앞의 문자나 그룹이 n번 이상 반복

더보기

예문

010-1234-5678
031-123-4567
02-123-4567

 

정규표현식

[0-9]{3}-[0-9]{3,}-[0-9]{4}

 

결과

010-1234-5678
031-123-4567
02-123-4567

{n,m} : 앞의 문자나 그룹이 n번 이상, m번 이하 반복

더보기

예문

010-1234-5678
031-123-4567
02-123-4567

 

정규표현식

[0-9]{2,3}-[0-9]{3,}-[0-9]{4}

 

결과

010-1234-5678
031-123-4567
02-123-4567

 

💫 기타

그룹

()

() : 괄호 안에 있는 문자열을 하나의 그룹으로 묶는 메타문자

아래 사용된 정규표현식((\d{1,3}\.){3}\d{1,3})은 (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})와 같다.

더보기

예문

127.0.0.1
142.250.76.142
223.130.200.107

 

정규표현식

(\d{1,3}\.){3}\d{1,3}

 

결과

127.0.0.1
142.250.76.142
223.130.200.107

 

선택지

|

| : OR연산자로, 왼쪽 또는 오른쪽에 있는 문자열 중 하나와 일치하는 경우를 나타내는 메타문자

더보기

예문

hello, world!

 

정규표현식

(hello|world).

 

결과

hello, world!

 

앵커

^

^ : 문자열의 시작 위치를 지정

$

$ : 문자열의 끝 위치를 지정

 

💫 고급

게으른 수량자

*, +, {n,}과 같은 반복자에 *?, +?, {n,}?처럼 ?를 붙여서 게으르 수량자를 사용할 수 있다.

더보기

예문

The teacher asked, "Which language is the most used in the world?" and the student replied, "Java."

 

정규표현식

".*"

".*?"

 

결과

The teacher asked, "Which language is the most used in the world?" and the student replied, "Java."

The teacher asked, "Which language is the most used in the world?" and the student replied, "Java."

 

역참조

역참조는 그룹()으로 묶은 표현식을 참조하여 사용할 수 있다. 표현식은 \1, \2, \3등으로 앞에서 부터 순서대로 1부터 참조할 수 있다.

아래 정규표현식에서는 \1이 [1-6]에서 나온 값을 참조한다.

더보기

예문

<H1>It's valid HTML tag</H1>
<H2>It's also valid HTML tag</H2>
<H3>It's not valid HTML tag</H2>

 

정규표현식

<H([1-6])>.*?<\/H\1>

 

결과

<H1>It's valid HTML tag</H1>
<H2>It's also valid HTML tag</H2>
<H3>It's not valid HTML tag</H2>

 

전방탐색

?=, ?!

?= : 일치하는 영역을 발견해도 반환하지 않는 패턴

더보기

예문

Apple: $155 for sale
Banana: $3 on sale
iPhone14 Pro: $999 sold

 

정규표현식

.+(?=:)

 

결과

Apple: $155 for sale
Banana: $3 on sale
iPhone14 Pro: $999 sold

?! : 일치하는 영역을 제외한 영역을 발견해도 반환하지 않는 패턴

더보기

예문

Apple: $155 for sale
Banana: $3 on sale
iPhone14 Pro: $999 sold

 

정규표현식

.+(?=:)(?!.+sold)

 

결과

Apple: $155 for sale
Banana: $3 on sale
iPhone14 Pro: $999 sold

 

후방탐색

?<=

?<= : 일치하는 영역을 발견해도 반환하지 않는 패턴

더보기

예문

Apple: $155 for sale
Banana: $3 on sale
iPhone14 Pro: $999 sold

 

정규표현식

(?<=\$)\d+

 

결과

Apple: $155 for sale
Banana: $3 on sale
iPhone14 Pro: $999 sold

?<! : 일치하는 영역을 제외한 영역을 발견해도 반환하지 않는 패턴 x(