View

회사 업무를 하다 보면 예외 처리를 엄청 꼼꼼히 해 주어야 하는데, 그래서인지 정규표현식도 굉장히 많이 쓰인다.

늘 필요한 정규표현식은 구글링해서 복붙해 왔던 나… 이제는 더이상 미룰 수 없다… 공부하자..!

정규 표현식 - JavaScript | MDN

정규표현식을 만드는 두 가지 방법


  1. 리터럴
  • 슬래시로 패턴을 감싸서 작성한다.

      const re = /ab+c/;
  1. RegExp 객체의 생성자 호출

정규표현식 패턴 작성하기


정규 표현식 패턴은 /abc/ 처럼 단순한 문자로 구성하거나, 단순한 문자와 특수 문자의 조합으로 구성할 수 있다.

/abc/ 처럼 단순 문자로 구성된 패턴은 abc 라는 문자의 조합이 일치하는 문자열을 찾는다. Grab crab 처럼 a, b, c가 모두 들어가 있지만 ab c 이기 때문에 일치한다고 보지 않는다.

이런 상황처럼 공백이나 하나 이상의 b를 찾는 등 직접적으로 같은 단순 패턴 이상의 것들을 하고 싶을 때는 특수 문자를 사용해야 한다.

정규표현식에 사용되는 특수 문자는 다음과 같은 분류로 나눌 수 있다.

문자 클래스


글자와 숫자처럼 다른 유형의 문자를 구분한다.

[xyz] [a-d]

특정 범위를 - 로 나타낼 수 있다.

  • ex) [a-d] = [abcd]
  • 하지만 문자 사이에 놓인 게 아니라 처음이나 끝에 들어가 있다면 문자로서의 ‘-’로 간주된다.
    • ex) [-abcd] 와 매칭되는 문자열로는 “arch”, “brisket”, “non-profit”이 있다.

[^xyz] [^a-c]

부정을 의미하는 문자 클래스다. 대괄호로 묶인 문자를 제외한 모든 문자와 일치한다.

  • ^ 는 입력의 시작을 나타낼 수도 있다.

.

종결 문자(\n, \r , /u2028)를 제외한 모든 문자와 매치된다.

  • ex) / .y/ 는 my와 ay와는 매치되지만 yes와는 매치되지 않는다.

\d

모든 아라비아 숫자 노래와 매치된다.

  • ex) \d = [0-9]

\D

모든 아라비아 숫자를 제외한 문자와 매치된다.

  • ex) \D 는 “B2”와 “B”로 매치된다.

\w

밑줄을 포함한 알파벳, 숫자와 매치된다.

\W

밑줄, 알파벳, 숫자를 제외한 모든 문자와 매치된다.

\s

공백, 탭, FF(Form Feed), LF(Line Feed)를 포함한 모든 유니코드 공백들과 매치된다.

  • ex) “foo bar”에서 /s/w*/ 와 매치되는 것은 “ bar”이다.

2. 어서션

  • 줄이나 단어의 시작과 끝을 나타내는 경계, 일치가 가능한 방법을 나타내는 패턴(전방탐색, 후방탐색, 조건 표현식) 등

3. 그룹과 범위

수량자


일치할 문자나 표현이 반복되어야 할 횟수를 나타낸다.

x*

x와 0번 이상 일치한다.

  • ex) /bo*/ 와 매치: “A ghost booooed”, “A bird warbled”, 매치되지 않음: “A goat grunted”

x+

x와 1번 이상 일치한다.

x?

x와 0번 또는 1번 매치된다.

x{n}

n이 양의 정수인 경우 x가 정확히 n번 발생하는 것과 매치된다.

  • ex) /a{2}/ 와 매치: “caandy”, “caaaaandy”, 매치되지 않음: “candy”

x{n,}

n이 양의 정수인 경우 x가 n개 이상인 항목과 일치한다.

  • ex) /a{2,}/ 와 매치: “caandy”, “caaaaandy”, 매치되지 않음: “candy”

5. 유니코드 속성 이스케이프

  • 대/소문자, 수학 기호, 문장 부호 등 유니코드 문자 속성에 따라 문자를 구분한다.

'Level-Up > develop' 카테고리의 다른 글

[JS] sort()  (0) 2022.03.05
Share Link
reply
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30