개발Story
Published 2022. 8. 28. 16:44
[javascript] 정규표현식 Javascript/문법

정규표현식은 "특정 패턴의 문자열"을 찾기 위한 표현 방식입니다.

(이런걸 형식 언어, formal languange라고 합니다.)

 

형식 : /regex?/i

 

의미 : slashes(/) , patterns(regex?), slashes(/) , i (i)

 

 

슬러시 안에 패턴을 입력하여 원하는 특정 패턴을 찾으면 됩니다.

 

 

4가지 그룹으로 나눠서 보기.

 

연습용 사이트 : https://regexr.com/5ml92

Groups and ranges

Character뜻

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

[patterns]

그룹으로 묶어서 찾기

ex)  /gr(e|a)y -> gr로 시작하면서 e또는a로 시작하고y로 끝나는 문자열을 찾고싶다.

ex)  /gr[ea]y -> gr로 시작하면서 e또는a로 시작하고y로 끝나는 문자열을 찾고싶다.

ex)  /gr[a-f]y -> gr로 시작하면서 a부터f까지 만족한는 문자열로 시작하고y로 끝나는 문자열을 찾고싶다.

ex)  /[a-zA-Z0-9] ->a부터z까지 A부터Z까지 0부터9까지 문자열을 찾고싶다.

ex)  /[^a-zA-Z0-9] ->a부터z까지 A부터Z까지 0부터9까지 문자열을 찾고싶다.(^부정)

Quantifiers

Character뜻

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

[patterns]

그룹으로 묶어서 찾기

ex) /gra?y ->gray거나 gry일 경우 문자열을 찾고싶다.

ex) /gra*y ->gra로 시작하는하고 y로 끝나는 단어가 없거나 있거나 많거나 일 경우 문자열을 찾고싶다.(gray,gry,graay,graaay....)

ex) /gra+y ->gra로 시작하는하고 y로 끝나는 단어 하나 또는 많이 일 경우 문자열을 찾고싶다.(gray,graay,graaay....)

ex) /gra{2,3}y ->gr로 시작하는하고 a가 최소2개 최소3개 y로 끝나는  일 경우 문자열을 찾고싶다.(graay,graaay)

Boundary-type

Character뜻

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

[patterns]

그룹으로 묶어서 찾기

ex) /\bYa 단어 앞에서 쓰이는 Ya만 찾고 싶다.(Ya Yayaya, Yaaaa)

ex) /Ya\b 단어 뒤에서 쓰이는 Ya만 찾고 싶다.(Ya yayaYa, aaaYa)

ex) /Ya\B 단어 뒤에서 쓰이는 Y를 제외한 단어를 찾고 싶다.(yayaYa, aaaYa)

ex) /^Ya 문장에서 시작하는 Ya를 찾고싶다

ex) /Ya$ 문장에서 끝나는 Ya를 찾고싶다

Character classes

Character뜻

\ 특수 문자가 아닌 문자
. 어떤 글자 (줄바꿈 문자 제외)
\d digit 숫자
\D digit 숫자 아님
\w word 문자
\W word 문자 아님
\s space 공백
\S space 공백 아님

[patterns]

그룹으로 묶어서 찾기

ex) /. ->모든문자열

ex) /\[ ->특수문자일 경우 \를 사용하여 찾아야 한다. [를 찾는다.

ex) /\d ->숫자를 전부 찾는다

ex) /\D ->숫자가 아닌 모든것을 찾는다.

ex) /\w ->모든 문자열을 찾는다.

ex) /\W ->문자열을 제외한 모든것

ex) /\s ->띄어쓰기를 찾는다

ex) /\S ->띄어쓰기를 제외한 모든것을 찾는다.

 

출처 : https://www.youtube.com/watch?v=t3M6toIflyQ

'Javascript > 문법' 카테고리의 다른 글

[JavaScript] this  (0) 2023.01.02
[javascript] Promise.all()  (0) 2022.11.02
[javascript] optional chaining(?)  (0) 2022.08.28
[javascript] scroll event(등록, 삭제)  (0) 2022.07.31
[javascript] sort 함수.  (1) 2022.06.07
profile

개발Story

@슬래기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!