g : 모든 문자 일치(global)
i : 영어 대소문자를 구분하지 않고 일치(ignore case)
m : 여러 줄 일치(multi line)
const str = `
010-1234-5678
4012popo@naver.com
https://www.velog/dongduu
hi i'm dongduu, DongDuu
abbcccdddd
`
console.log(str.match(/dongduu/gi))
=> g를 통해서 모든 dongduu를 찾음
=> i를 통해서 대소문자를 구별하지 않고 dongduu를 찾음
이스케이프 문자
(백슬래시) 기호를 통해 본래의 기능에서 벗어나 상태가 바뀌는 문자를 말함
$/m
: 달러 사인이 뒤에 붙으면 문장 마지막에 입력한 문자가 있는 지 확인해줌
console.log(str.match(/\.$/gim))
^ab : 줄 시작에 있는 ab와 일치
ab$ : 줄 끝에 있는 ab와 일치
const str = `
010-1234-5678
4012popo@naver.com
https://www.velog/dongduu
hi i'm dongduu, DongDuu.
abbcccdddd
`
console.log(
str.match(/d$/gm)
)
console.log(
str.match(/^h/gm)
)
. : 임의의 한 문자와 일치
a|b : a 또는 b와 일치
ab? : b가 없거나 b와 일치
const str = `
010-1234-5678
4012popo@naver.com
https://www.velog/dongduu
hi i'm dongduu, DongDuu.
http://www.naver.com
abbcccdddd
hxyp
`
console.log(
str.match(/./g)
//str.match(/h..p/g)
)
console.log(str.match(/4012|popo/g))
console.log(str.match(/https?/g))
{3} : 3개 연속 일치
{3,} : 3개 이상 연속 일치
{3,5} : 3개 이상 5개 이하(3~5개) 연속 일치
console.log(str.match(/d{2}/))
console.log(str.match(/d{2,}/))
console.log(str.match(/d{2,3}/))
console.log(str.match(/\b\w{2,3}\b/g))
[abc] : a 또는 b 또는 c
[a-z] : a부터 z 사이의 문자 구간에 일치(영어 소문자)
[A-Z] : A부터 Z 사이의 문자 구간에 일치(영어 대문자)
[0-9] : 0부터 9 사이의 문자 구간에 일치(숫자)
[가-힣] :가부터 힣 사이의 문자 구간에 일치(한글)
const str = `
010-1234-5678
4012popo@naver.com
https://www.velog/dongduu
hi i'm dongduu, DongDuu.
http://www.naver.com
abbcccdddd
동해물과 백두산이_마르고 닳도록
`
console.log(
str.match(/[him]/g)
)
console.log(
str.match(/[0-9]{3,}/g)
)
console.log(
str.match(/[가-힣]{1,}/g)
)
\w : 63개 문자(Word, 대소영문 52개, 숫자 10개 + _)에 일치
\b : 63개 문자에 일치하지 않는 문자 경계(Boundary)
\d : 숫자(Digit)에 일치
\s : 공백(space, tab)에 일치
console.log(
str.match(/\w/g)
)
console.log(
str.match(/\bh\w{1,}\b/g)
)
console.log(
str.match(/\d{1,}/g)
)
const h = ` the hello world !
`
console.log(
h.replace(/\s/g, '')
)
(?=) : 앞쪽 일치
(?<=) : 뒤쪽 일치
console.log(
str.match(/.{1,}(?=@)/g)
)
console.log(
str.match(/(?<=@).{1,}/g)
)