[Note] 정규표현식 RegExp

bbio3o·2021년 8월 21일
0

👩‍💻 노트

목록 보기
8/10
post-thumbnail

📌 Cheat Sheet 정리

까먹으니까 정리해야지..💩

🏁 flags

g - global 다수의 결과값 출력
m - multiline ^(문장의 시작) 와 $(문장의 끝) 사용시 여러 줄에 적용(m을 사용하지 않으면 $을 사용 할 경우 줄별로 적용되는 것이 아니라 전체 문장의 맨 끝에만 적용된다.)
i - Ignore case 대소문자 구분(넣으면 구분 하지 않는다.)


🎈 문법 정리

Groups and ranges

Chracter
\|또는
()그룹
[]문자셋, 괄호안의 어떤 문자든
[^]부정 문자셋, 괄호안의 어떤 문가 아닐때
(?:)찾지만 기억하지는 않음

Quantifiers

Chracter
?없거나 있거나 (zero or one)
*없거나 있거나 많거나 (zero or more)
+하나 또는 많이 (one or more)
{n}n번 반복
{min,}최소
{min,max}최소, 그리고 최대

Boundary-type

Chracter
\b단어 경계
\B단어 경계가 아님
^문장의 시작
$문장의 끝

Character classes

Chracter
\특수 문자가 아닌 문자
.어떤 글자 (줄바꿈 문자 제외)
\ddigit 숫자
\Ddigit 숫자 아님
\wword 문자
\Wword 문자 아님
\sspace 공백
\Sspace 공백 아님

Positive/Negative lookahead, lookbehind

Chracter
(?=)긍정형 전방 탐색
(?<=)긍정형 후방 탐색
(?!)부정형 전방 탐색
(?<!)부정형 후방 탐색

📌 적용

다음과 같은 문장이 있다.

EXAMPLE N INSTAGRAM PROFILE @(https://www.instagram.com/example_n_worldwide, @Example N Worldwide)

이 문장에서 @( 여기들어가는 정보들 ) 만 뽑고 싶을 때 적용하는 regex가 필요하다.
-> 정규식을 사용해서 특정 조건을 만족하는 문자열을 찾되, 그중에서 제외를 하고싶은 경우(negative)


✨ ?<=은 긍정형 후방 탐색

val.match(/(?<=@()[^(]*.(?=))/gi)
❗️❗️❗️ 하지만 사파리에서 지원하지 않는 문제


✨ ?!은 부정형 전방 탐색

val.match(/(?!:@()[^(]*.(?=))/gi)


✨ url validator

/https?:\/\/(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/


📌 테스팅 사이트 Testing

regex101
regexr

출처

유튜브
MDN 정규 표현식

profile
그림도 그리는 개발자 🎨👩‍💻

0개의 댓글