INFO/WEB

정규표현식 패턴 - 정규표현식 | 생활코딩

AGAL 2021. 10. 8. 18:12
반응형

 

※ 예제 설명

정규표현식 === 소스 첫 매치 모두 매치

 

 

위치

^

: 캐럿 뒤에 나오는 패턴이 소스 상에서 시작 위치에 있을 때만 매치

^who === who is who

 

&

: 달러 앞에 나오는 패턴이 소스 상에서 끝 위치에 있을 때만 매치

who$ === who is who

 

 

이스케이핑

\

: 백슬래시 뒤에 나오는 문자를 정규표현식에서 의미가 있는 문법적 요소(^, $, 등)가 아닌 일반 문자로 변환

^\$ === $12-$13

*escape(이스케이프) : 코드 상에서 어떤 역할로부터 탈출(해제) 시켜 준다.

 

 

모든 문자

.

: 모든 문자(≒character)를 매치

.... === test of point


 

 

특정 문자

[]

: 스퀘어 브라켓(대괄호) 안에 있는 문자 중 일치하는 문자 하나를 매치

[oyu] === How do you do?
[dH]. === How do you do?
[owy][yow] === How do you do?

 

-

: 대시 앞에 나오는 문자부터 대쉬 뒤에 나오는 문자까지의 범위

[C-F] === ABCDEFGH

 

^

: 스퀘어 브라켓 안에서의 캐럿은 부정의 의미

[^C-F] === ABCDEFGH

 

 

서브 패턴

()

: 퍼렌씨시스(소괄호) 안에 파이프(수직선)로 분리한 문자 중 일치하는 문자를 매치

(on|ues|rida) === Monday Tuesday Friday

 

 

수량자

*

: 아스테리스크(별표) 앞에 나오는 패턴이 있을 수도 있고 없을 수도 있는 것을 의미 (0개 ~ 여러개) ≒ {0,}

a*b === aab abc bc
[-@]* === -@- *** -- *** -@-

 

+

: 플러스(더하기) 앞에 나오는 패턴이 하나 이상 있음을 의미 (1개 ~ 여러개) ≒ {1,}

a+b === aab abc bc
[^ ] === -@- *** -- *** -@-

 

?

: 퀘션(물음표) 앞에 나오는 패턴이 없거나 하나인 경우를 의미 (0개 ~ 1개) ≒ {0,1}

a?b === aab abc bc
-@?@?@?- === X--X-@-XX-@@@@-XX-@@-XX

 

{}

: 브레이스(중괄호) 안에 있는 숫자만큼 브레이스 앞에 있는 패턴을 매치

[els]{5} === the darkness bind them
[els]{2,3} === them all darkness 
[a-z]{3,} === One ring to bring    // {3,} 은 3개 이상 매치

* 콤마(쉼표)로 매칭되는 개수의 범위를 정한다. 예를 들어 {1, 3} 은 1개에서 3개까지 매치

 

※ 수량자(*, +, ?) 뒤에 ?가 있을 경우 해당 수량자의 최소값으로 매치 

r.*? === One ring to bring     // 0개 매치
r.+? === One ring to bring    // 1개 매치
r.?? === One ring to bring     // 0개 매치

 

※ 탐욕적 vs 게으른 수량자

<div>.+<\/div> === <div>text</div> <div>text2</div>      // .+ 는 탐욕적 선택자
<div>.+?<\/div> === <div>text</div> <div>text2</div>    // .+? 는 게으른 선택자

 

 

경계

\w

: word(단어) 를 매체

[a-z]\w* === A1 B2 c3 d_4 e:5 ffGG77--__--

 

반응형