[Level up] 정규 표현식(4) - 플래그(옵션)

01.플래그(옵션)

  • 플래그(flags)는 정규표현식의 옵션으로 정규식으로 검색하려는 문자 패턴에 추가적인 옵션을 넣어 원하는 문자 검색 결과를 반환하도록 합니다.
플래그설명
g모든 문자 일치(global)
i영어 대소문자를 구분 않고 일치(ignore case)
m여러 줄 일치(multi line)

1.1 플래그 사용 예제

const str = `
010-1234-5678
[email protected]
http://www.omdbapi.com/?apikey=2181d79b&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`

const regexp1 = /the/
console.log(str.match(regexp1)) // "the", index: 15

const regexp2 = /the/g
console.log(str.match(regexp2)) // (2) ["the", "the"]

const regexp3 = /the/gi
console.log(str.match(regexp2)) // (3) ["the", "The", "the"]
console.log(str.match(/the/gi)) // (3) ["the", "The", "the"]

02.이스케이프 문자(Escape Character)

  • 백슬래시(\) 기호를 통해 본래의 기능에서 벗어나 상태가 바뀌는 문자를 말합니다.
  • 이를 통해 정규표현식 내에서 특정한 기능으로 활용되는 기호를 문자로 해석되도록 합니다.

2.1 이스케이프 문자 사용 예제

const str = `
010-5484-7632
[email protected]
http://www.omdbapi.com/?apikey=2181d79b&s=frozen
The quick brown fox jumps over the lazy dog.
abbcccdddd
`

console.log(str.match(/\./gi)) // (4) [ ".", ".", ".", "." ]
// str 데이터 내에서 .(dot) 사용에 대한 정보를 검색하고 싶으나,
// .(dot)은 정규식 내에서 특정한 기능으로 활용되므로 앞에 \(백슬래시)를 추가하여 검색함

console.log(str.match(/\.$/gim)) // 값: "."
// .(dot) 뒤의 $는 $ 앞에 적힌 하나의 단어가 포함되는 문장에서 끝나는 부분을 일치시키는 기호
// 또한, 뒤에 플래그도 gim을 입력하여 여러 줄을 일치시켰으므로 4번째 줄의 .(dot)이 검색됨

console.log(str.match(/\.$/gi)) // 값: null
// 이번에는 플래그 중 m을 제거하여 여러 줄을 검색하지 않으므로
// 가장 마지막 줄인 aabb로 시작하는 다음 줄에서 검색을 실행했으나 .(dot)이 없으므로 null이 반환됨

좋은 웹페이지 즐겨찾기