[Javascript] 정규표현식2

Hailey Song·2021년 1월 20일

아까는 생활코딩으로 전체 개요를 들었다면 이번엔 MDN으로 세부 옵션을 정리하기로 한다.

정규식에서의 특수문자

\ : 해석의 방향성 제시

  • 단순 문자 앞에 붙을 때 : 이 문자를 그대로 해석하지 마세요!
    • \w의 경우, 문자 w가 아닌 word를 나타내는 것으로 해석해야 한다.
  • 특수 문자 앞에 붙을 때 : 이 문자를 그대로 해석하세요!
    - \*의 경우, '바로 앞의 문자가 0개 이상이라는 것을 의미하는 특수문자' *가 아니라 문자 그대로의 *로 해석해야 한다.

^ : 입력의 시작 부분에 대응

  • /^A/ : 문자 "A"로 시작하는가?

$ : 입력의 끝 부분에 대응

  • /t$/ : 문자 "t"로 끝나는가?

* : 앞의 표현식이 0회 이상 연속으로 반복되는 부분과 대응 === {0,}

  • /bo*/ : 문자 "b"와 0개 이상의 "o"로 구성되어 있는가?
  • ex) "boooooo", "b"

+ : 앞의 표현식이 1회 이상 연속으로 반복되는 부분과 대응 === {1,}

  • /bo+/ : 문자 "b"와 1개 이상의 "o"로 구성되어 있는가?
  • ex) "boooooo"

? : 앞의 표현식이 0 또는 1회 등장하는 부분과 대응 === {0,1}

  • /e?le?/ : 앞의 "e"는 0 또는 1회, "l"는 반드시 1회 있어야 하고, 뒤의 "e" 역시 0 또는 1회
    - ex) "angel", "angle", "oslo"
  • 만약 수량자 *, +, ?, {} 바로 뒤에 사용하면, 기본적으로 탐욕스럽던(가능한 한 많이 대응시킴) 수량자를 탐욕스럽지 않게(가능한 가장 적은 문자들에 대응시킴) 만듭니다. 예를 들어, /\d+/를 "123abc"에 적용시키면 "123"과 대응됩니다. 그러나 /\d+?/를 같은 문자열에 적용시키면 오직 "1"과만 대응됩니다.
  • 또한 이 문자는 x(?=y) 와 x(?!y) 항목에서 설명하는 바와 같이 사전 검증(lookahead assertion)을 위해서도 쓰입니다.

. : 개행 문자를 제외한 모든 단일 문자와 대응

... to be continued

0개의 댓글