
정규표현식 예시
해당 내용은 드림코딩 엘리님의 유튜브를 참고 했습니다.
정규표현식의 다양한 예시
엘리님 유튜브에서 공부한 내용인데 표로 정리한 내용만 봐서는 어떤 말인지 알기 어려우므로 직접 해보는게 중요한 것 같다.
확실히 한번 해보지 않으면 표만 봐서는 조금 헷갈린다.
GroupRange(그룹, 레인지)
Hi
는 Hi를
Hi|Hello
는 Hi or Hello
(Hi|Hello)|(And)
는 그룹 OR
그룹1과 그룹2로 나누어져있다.
(e|a)
는 e or a 를 그룹 하나로
(?:e|a)
그룹화를 원하지 않을 때
그룹화가 안되어있다
[abcdef]
문자셋 괄호안에 어떤 문자든
[a-f]
문자셋 a부터 f까지
[^a-zA-Z0-9]
부정 문자셋, not sign. 괄호안의 어떤 문자가 아닐 때
소문자, 대문자 알파벳, 숫자가 아닐 때
[a-zA-Z0-9]
모든 문자, 숫자셋 레인지
Quantifiers(수량)
gra?y
없거나 있거나(zero or one)
gra*y
없거나 있거나 많거나(zero or more)
gra+y
하나 또는 많이(one or more)
{2}
n번 반복
2를 넣었으므로 2번 반복
gra{2,}y
최소
a가 최소 2번.
gra{2,3}y
최소, 그리고 최대
a가 최소 2번, 최대 3번
Boundary-type(단어 경계)
\bYa
단어의 시작에 Ya가 있는 것
Ya\b
단어의 끝에 Ya가 있는 것
Ya\B
단어 경계가 아님
단어 뒤에서 쓰지 않는 것만 찾기
^Ya
문장에서 시작하는 Ya
Ya$
문장 끝에 있는 Ya
뒤에 flag에서 multiline을 지우면 아예 문장 끝에 Ya가 있어야 찾아준다.
—
Character classes
.
줄바꿈 문자를 제외한 모든 문자열
\.
특수 문자열 자체를 찾고 싶을때는 \ 로 찾아야 함
정규표현식에서 사용하는 특수문자열 자체들을 찾을 때 쓴다.
\[\]\{\}
특수 문자열 찾는 예시
[ , \ , ] ,{ , } 를 찾는 예시
\d
digit의 약자. 숫자 전부 찾기
\D
대문자를 이용하면 숫자가 아닌 전부
\w
word의 약자. 모든 문자열
\W
대문자를 이용하면 문자가 아닌 전부
\s
space 공백
띄어쓰기를 찾을 수 있다
\S
대문자를 이용하면 띄어쓰기를 제외한 모든 것
예제
전화번호 찾는 예제
처음에 숫자 3개가 있고, -가 있고 다시 3개 후 -, 숫자 4개가 있다. 숫자가 3개가 될 수도 있고 2개가 될 수도 있으므로 최대 최소를 쓰고, -에서는 .이 될 수도 있고 스페이스가 될 수도 있다.
이메일 찾는 예제
문자, ._+-가 다 포함 될 수 있고 여러번 반복해서 나올 수 있다. \*
를 사용하지 않은 것은 없거나 많거나가 되므로 최소1개가 되어야하므로 +를 사용했다.
유튜브 주소 ID 찾기
유튜브 주소 뒤에는 비디오 ID가 항상 포함되어 있다. s는 있어도 없어도 되므로 ?
를 붙인다. http자체가 있어도 없어도 되므로 그룹으로 묶어서 다시 ?
를 붙인다. www도 없어도 되므로 그룹으로 묶어서 ?
를 붙인다. ID는 총 11개의 문자열로 이루어져있는 것을 아는 경우는 {11}
로 하면 된다.
유튜브 주소 ID 찾기2
우리는 소괄호를 이용해서 총 3가지의 그룹을 만들었는데 우리가 원하는것은 유튜브 ID 이므로 원하지 않는 것은
?:
를 이용하여 그룹에서 빼면 된다.