초보 개발자

정규표현식, 이메일 패스워드 본문

AI 웹개발 트랙 - 내배캠/5주차

정규표현식, 이메일 패스워드

taehyeki 2022. 1. 13. 10:54

정규표현식

옵션

/abc/gi 와 같은 정규식이 있다고 할 때

/ / <- 이 두개의 슬래쉬는 정규식이라는 걸 알려주는 역할을 하고  뒤에 있는 gi는 플래그이다. 즉 옵션같은 것이라고 생각하면 된다. g는 global을 뜻하고, i는 case insensitive(대소문자 구분 x), m은 multiline을 뜻한다.

 

먼저 hi를 적으면 g옵션으로 인해서 모든 hi를 다 찾는다. 그리고 | <는 or이라는 뜻으로 hello또한 찾는다.

여기서는 i 옵션을 주어서 대소문자 구별을 하지 않으므로 모든 hi와 hello를 찾지만 만약 i옵션을 빼면  아래와 같은 화면이 나올 것이다. 대소문자 정확히 적어주어야 판별이 가능!

 

()는 그룹을 의미한다. 그룹으로 묶어줄 수도 있다.

그룹

위와 똑같지만 그룹이라는 것 안에 들어가게 된다. 아래도 마찬가지이다.

?:

만약 그룹이라는 걸 표시하고 싶지 않다면 ?:을 앞에 적어주면 된다. group표시가 사라진 걸 확인할 수 있다.

[ ]

대괄호를 사용하면 대괄호 안에 해당하는 모든 집합체를 찾을 수 있다. 대괄호 안의 문자 중 하나라도 만족하는 것을 찾는다. 

 

아래의 abcdef를 a-f이런식으로 줄여서 사용할 수도 있다.

대괄호를 사용하면 어떠한 문자든 a-z까지의 조건만 만족하면 다 찾는다.

[^]

대괄호 안에 ^를 적어주고 키워드를 적어주면 키워드에 해당하지 않는 것만 찾아준다.

?

특정한 문자 다음에 ?를 지정하게 되면 ? 앞에 적힌 문자가 있거나 없거나 한 것을 찾아준다.

(zero or one)

*

특정한 문자 다음에 *를 지정하게 되면 *앞에 적힌 문자가 없거나 있거나 많거나 한 것을 찾아준다.

(zero or one or more) 

+

특정한 문자 다음에 *를 지정하게 되면 *앞에 적힌 문자가 있거나 많거나 한 것을 찾아준다. (없으면 안 찾음)

(one or more)

{숫자}

특정한 문자 다음에 {숫자}를 지정하게 되면 앞에 적힌 문자의 개수만큼 적힌 단어를 찾는다.

{min,max}의 형태로 최소 몇개, 최대 몇개를 지정할 수 있다. 최대 생략해도됨

\b

단어 중 맨 에서 쓰이는 문자열만 선택! Ya중 단어 앞에서 쓰이는 Ya만 선택

 

마찬가지로 뒤에다가 적으면 단어 맨 뒤에서 쓰이는 문자열만 선택!

대문자로 적으면 Ya중에 뒤에서 끝나지 않는 Ya만 선택

반대도 마찬가지이다.

지금까지는 단어였는데

문장을 기준으로 첫번째는 ^을사용한다.

^

$

\b와 다르게 ^$는 문장에서 사용하는 것을 꼭 기억하자.

여기서 옵션 중 m을 선택해제하면 아무것도 선택이 안된다. 그 이유는 

개개의 문장이 아닌 전체의 문장에서 찾기 때문이다. 따라서 전체의 문장에서는 Ya로 끝나지 않기때문에 아무것도 찾지 않는다.

 

.

.은 모든 문자를 다 찾는다.

 

\

하지만 내가 문장에서 마침표나 이나 물음표를 찾고싶다면 어떻게 해야할까??

그럴때는 \를 이용해서 찾아야 한다.

\d

숫자만 찾고 싶을 때 사용한다.

\D

대문자로 적어주면 숫자가아닌 모든 것을 찾음

\w

모든 문자를 찾음(숫자도 포함)

\W

문자를 제외한 것을 찾음

\s

공백을 찾음

\S

공백을 제외한 것을 찾음

전화번호 정규식 

\d를통해 숫자를 검색하고 처음엔 2,3개가 올 수잇으니 {min,max}를 사용하고 드 위에는 - . 공백이 올 수 있으니 대괄호로 묶어주어 표현하였다.

 

이메일 정규식

*이 아닌 +로 적은 이유는 *로 적으면 문자가 없어도 잘 인식이 되기 때문이다.

 

유튜브 주소 정규식

이런식으로도 할 수 있다.

 

JS에서 활용하기

우리가 사용한 정규식을 //를 포함하여 변수에 적어준뒤 url에 매치해주면 된다.

'AI 웹개발 트랙 - 내배캠 > 5주차' 카테고리의 다른 글

5주자 WIL  (0) 2022.01.17
파이썬 힙 heap 간단 구현 !!!  (1) 2022.01.11
Git stash  (0) 2022.01.11
Git commit 되돌리기 amend, revert, reset  (0) 2022.01.11
Git fork  (0) 2022.01.11