정규표현식 예시

정규표현식 예시

2021, Mar 04    

해당 내용은 드림코딩 엘리님의 유튜브를 참고 했습니다.

드림코딩by엘리님 유튜브 바로가기

정규표현식 연습 regexr 바로가기

정규표현식의 다양한 예시

엘리님 유튜브에서 공부한 내용인데 표로 정리한 내용만 봐서는 어떤 말인지 알기 어려우므로 직접 해보는게 중요한 것 같다.

확실히 한번 해보지 않으면 표만 봐서는 조금 헷갈린다.


GroupRange(그룹, 레인지)

Hi 는 Hi를

plain

Hi|Hello 는 Hi or Hello

or

(Hi|Hello)|(And) 는 그룹 OR

GroupOR 그룹1과 그룹2로 나누어져있다.

(e|a)는 e or a 를 그룹 하나로

eORa

(?:e|a) 그룹화를 원하지 않을 때

dontwantGroup 그룹화가 안되어있다

[abcdef]문자셋 괄호안에 어떤 문자든

abcdef

[a-f] 문자셋 a부터 f까지

a_f

[^a-zA-Z0-9]부정 문자셋, not sign. 괄호안의 어떤 문자가 아닐 때

notSign 소문자, 대문자 알파벳, 숫자가 아닐 때

[a-zA-Z0-9]모든 문자, 숫자셋 레인지

canFindAllRange


Quantifiers(수량)

gra?y 없거나 있거나(zero or one)

zeroOrone

gra*y 없거나 있거나 많거나(zero or more)

zeroOrMore

gra+y 하나 또는 많이(one or more)

oneOrMore

{2} n번 반복

n 2를 넣었으므로 2번 반복

gra{2,}y 최소

min a가 최소 2번.

gra{2,3}y 최소, 그리고 최대

minMax a가 최소 2번, 최대 3번


Boundary-type(단어 경계)

\bYa 단어의 시작에 Ya가 있는 것

Boundary

Ya\b 단어의 끝에 Ya가 있는 것

Boundary2

Ya\B단어 경계가 아님

Boundary3
단어 뒤에서 쓰지 않는 것만 찾기

^Ya 문장에서 시작하는 Ya

startSentence

Ya$ 문장 끝에 있는 Ya

lastSentence
뒤에 flag에서 multiline을 지우면 아예 문장 끝에 Ya가 있어야 찾아준다. —

Character classes

. 줄바꿈 문자를 제외한 모든 문자열

word

\. 특수 문자열 자체를 찾고 싶을때는 \ 로 찾아야 함

dot
정규표현식에서 사용하는 특수문자열 자체들을 찾을 때 쓴다.

\[\]\{\} 특수 문자열 찾는 예시

realBracket
[ , \ , ] ,{ , } 를 찾는 예시

\d digit의 약자. 숫자 전부 찾기

digit

\D 대문자를 이용하면 숫자가 아닌 전부

notDigit

\w word의 약자. 모든 문자열

word2

\W 대문자를 이용하면 문자가 아닌 전부

notWord

\s space 공백

space
띄어쓰기를 찾을 수 있다

\S 대문자를 이용하면 띄어쓰기를 제외한 모든 것

notSpace


예제

전화번호 찾는 예제

phoneNumber
처음에 숫자 3개가 있고, -가 있고 다시 3개 후 -, 숫자 4개가 있다. 숫자가 3개가 될 수도 있고 2개가 될 수도 있으므로 최대 최소를 쓰고, -에서는 .이 될 수도 있고 스페이스가 될 수도 있다.

이메일 찾는 예제

e-mail
문자, ._+-가 다 포함 될 수 있고 여러번 반복해서 나올 수 있다. \* 를 사용하지 않은 것은 없거나 많거나가 되므로 최소1개가 되어야하므로 +를 사용했다.

유튜브 주소 ID 찾기

youtubeID
유튜브 주소 뒤에는 비디오 ID가 항상 포함되어 있다. s는 있어도 없어도 되므로 ?를 붙인다. http자체가 있어도 없어도 되므로 그룹으로 묶어서 다시 ?를 붙인다. www도 없어도 되므로 그룹으로 묶어서 ?를 붙인다. ID는 총 11개의 문자열로 이루어져있는 것을 아는 경우는 {11}로 하면 된다.

유튜브 주소 ID 찾기2

youtubeIDnoneGroup 우리는 소괄호를 이용해서 총 3가지의 그룹을 만들었는데 우리가 원하는것은 유튜브 ID 이므로 원하지 않는 것은 ?:를 이용하여 그룹에서 빼면 된다.