ARTICLE | [JS] 정규표현식 톺아보기

noopy·2022년 1월 20일
1

✏️ STUDY

목록 보기
10/10
post-custom-banner

## 간단 요약

반복 검색

  • {m,n}: 최소 m번 최대 n번
  • {m,}: 최소 m번
  • {m} === {m,m}: m번
  • + === {1,}: 최소 1번
const regExp = /A+/g // A가 최소 1번이상 반복되는 문자열 global로 검색
  • ?: 포함되거나 포함되지 않거나
const regExp = /colou?r/g // color, colour를 찾음
  • | === or
const regExp = /A+|B+/g // A가 1번이상 반복되는 거 또는 B가 1번이상 반복되는 거
  • [] === or
    [] 내의 문자는 or로 동작한다.
const regExp = /[AB]+/g // A가 1번이상 반복되는 거 B가 1번이상 반복되는 거
  • /d === [0-9]

  • /D === [^0-9]: 숫자가 아닌 문자

  • /w === [A-Za-z0-9_]: 알파벳, 숫자, 언더스코어(_)

  • /W === [^A-Za-z0-9_]: 알파벳, 숫자, 언더스코어(_)가 아닌 문자

  • /s === 공백문자

  • (:?) -> 캡쳐링은 하지만 사용하고 싶진 않을 때

문제풀어보기

1. 다음 정규표현식을 해석해보자

const regExp = /0\d{1,2}[ -]?\d{3,4}[ -]?\d{3,4}/
/0\d{1,2}[ -]?: 0 + 숫자최소 1~ 최대 2+ 공백 또는 - 가 와도 되고 안와도 됨
 <br>
\d{3,4}[ -]?: 숫자 최소 3~ 최대 4+ 공백 또는 - 가 와도되고 안와도 됨
  <br>
\d{3,4}/: 숫자 최소 3~ 최대 4

2. 영문 문장을 입력받아 각 줄의 모음의 개수를 세는 프로그램을 작성해보자

// 예제 입력
How are you today?
Quite well, thank you, how about yourself?
I live at number twenty four.
#

// 예제 출력
7
14
9

모음: a, e, i, o, u

  • 대소문자 구분 없음
const regExp = /[aeiou]/gi
const arr = sentence.split("\n")
arr.forEach(sentence => {
  const resultArr = sentence.match(regExp)
  resultArr && console.log(resultArr.length)
})

참고) 백준_모음의 개수

정규표현식 연습하기 좋은 사이트: regexone

profile
💪🏻 아는 걸 설명할 줄 아는 개발자 되기
post-custom-banner

0개의 댓글