정규표현식은 "특정 패턴의 문자열"을 찾기 위한 표현 방식입니다.
(이런걸 형식 언어, 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 |