[Level up] 정규 표현식(2) - 정규식 생성

01.정규표현식

  • 문자를 검색하고 대체하고 추출하는 방식을 제공하는 다양한 환경에서 사용할 수 있는 기능입니다.

  • 간단한 문자 검색부터 이메일, 패스워드 검사 등의 복잡한 문자 일치 기능들을 정규식 패턴으로 빠르게 수행할 수 있습니다.

  • 정규표현식은 크게 아래와 같은 역할을 수행합니다.

1. 문자 검색(search)
2. 문자 대체(replace)
3. 문자 추출(extract)


02.정규표현식 테스트 사이트

  • 아래 사이트를 통해 정규표현식을 실제 작성하여 적용할 수 있습니다.

https://regex101.com/
https://regexr.com/
https://regexper.com/


03.JavaScript 정규식 생성

  • JavaScript를 통해 정규표현식을 생성하는 방법은 크게 두 가지가 있습니다.
  • 생성자 함수 방식과 리터럴(Literal) 방식입니다.

3.1 생성자 방식

new RegExp('표현', '옵션')
new RegExp('[a-z]', 'gi')
// [a-z]: a-z까지의 영어 소문자를 검색하는 패턴
// gi: g는 일치하는 모든 내용을 검색, i는 대문자와 소문자 구별을 하지 않음을 의미하는 옵션
  • new 키워드를 통해 생성된 정규표현식이 생성자 방식이며 이렇게 생성된 결과를 특정한 변수에 받아서 활용할 수 있습니다.
  • 첫 번째 인수로는 '표현의 패턴' 그리고 두 번째 인수로는 '패턴을 어떠한 방식으로 검색할 것인지에 대한 옵션'을 추가할 수 있습니다.

3.2 리터럴(Literal) 방식

/표현/옵션
/[a-z]/gi
// [a-z]: a-z까지의 영어 소문자를 검색하는 패턴
// gi: g는 일치하는 모든 내용을 검색, i는 대문자와 소문자 구별을 하지 않음을 의미하는 옵션
  • 생성자 방식과 동일하게 작동하는 리터럴 방식입니다.
  • 생성자 방식보다 간단한 방식으로 작성되므로 이 방식이 사용 빈도가 높습니다.

3-3 사용 예제

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

const regexp1 = new RegExp('the', '') // 일치하는 첫 번쨰 내용을 검색
console.log(str.match(regexp1)) // 0: "the"

const regexp1 = new RegExp('the', 'g') // 일치하는 모든 내용을 검색
console.log(str.match(regexp1)) // (2) ["the", "the"]

const regexp2 = new RegExp('the', 'gi') // 일치하는 모든 내용을 검색하되 대문자, 소문자 구별 안함
console.log(str.match(regexp2)) // (3) ["the", "The", "the"]

const regexp3 = /the/gi // 리터럴 방식으로 정규식 생성
console.log(str.match(regexp3)) // (3) ["the", "The", "the"]

좋은 웹페이지 즐겨찾기