JavaScript Level up - ch.6 정규표현식 (4) ~ (6)

이동주·2021년 12월 22일
0

4. 플래그(옵션)

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))

5. 패턴(표현) (1)

^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))

6. 패턴(표현) (2)

[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)
)
profile
안녕하세요 이동주입니다

0개의 댓글