ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JS] 정규 표현식의 패턴과 플래그
    Javascript/이론 2022. 12. 21. 22:06
    반응형

    정규 표현식 기본 구성

    /pattern/flags

     

      정규 표현식은 위와 같이 구성된다. 두 슬래시 사이에 패턴이 위치하고 마지막으로 플래그가 위치한다. 정규 표현식은 아래 코드에서 확인 가능하듯이 두 가지 문법으로 사용된다.

     

    regexp = new RegExp("pattern", "flags");
    regexp = /pattern/flags;

     

     

     

    정규 표현식의 패턴

     

    문자 / 숫자 / 특수기호 매칭 검색 기준
    패턴 특징 패턴 특징
    a-zA-Z 모든 영어 알파벳 | or
    ㄱ-ㅎ가-힣 모든 한글 문자 [ ] 대괄호 안의 문자들에 대한 or
    0-9 모든 숫자 [^문자] 대괄호 안의 문자를 제외한 경우
    . 모든 문자열 ^word word로 시작하는 문자열
    \특수기호 해당하는 특수기호
    ex.  \* \^ \& \? 등
    word$ word로 끝나는 문자열
    \d 숫자 반복 패턴
    \D 숫자 이외의 것 패턴 특징
    \w 모든 영어, 숫자 및 _
    ex.  [a-zA-Z0-9_]
    abc? ab 그리고 0 또는 1개의 c를 포함한 문자열
    \W 모든 영어, 숫자 및 _ 이외의 것 abc* ab 그리고 0~ 개의 c를 포함한 문자열
    \s 공백 abc+ ab 그리고 1~ 개의 c를 포함한 문자열
    \S 공백 이외의 것 abc*? ab 그리고 0 개의 c를 포함한 문자열
    \b 한쪽은 문자, 다른 한쪽은 문자가 아닌 단어
    \bword\b => wdfword word dkfewordd
    abc+? ab 그리고 1 개의 c를 포함한 문자열
    \B \w에 일치하는 단어 경계 abc{n} ab 그리고 n 개의 c를 포함한 문자열
    \x 16진수 문자 abc{n, } ab 그리고 n~ 개의 c를 포함한 문자열
    \0 8진수 문자 abc{n, m} ab 그리고 n~m 개의 c를 포함한 문자열
    \u 유니코드 문자 그룹화 패턴
    \n 줄바꿈 문자 패턴 특징
     
     
      () 그룹화, 캡쳐
    위 abc에서 a(bc)와 같이 그룹화할 경우,
    a와 x개의 bc를 포함한 문자열에 매칭 하는게 가능하다.
    (?<name>word) 그룹에 name을 이름으로 지정한다.
    (?: word) 그룹화(캡쳐를 반환하지 않음)
    패턴 특징 패턴 특징
    d(?=r) r이 바로 뒤에 있는 d를 매칭(r은 포함되지 않음) d(?!r) r이 바로 뒤에 없는 d를 매칭((r은 포함되지 않음)
    (?<=r)d r이 바로 앞에 있는 d를 매칭(r은 포함되지 않음) (?<!r)d r이 바로 앞에 없는 d를 매칭(r은 포함되지 않음)

     

    -추가-

    (?=.*/d) : 문자열에 적어도하나의 숫자가 포함되어 있는지 확인

    (?!.*\s) : 문자열에 공백문자가 없는 모든 문자열과 일치

     

    정규 표현식의 플래그

     

    플래그 특징 플래그 특징
    i 대소문자를 구별하지 않는다 s 개행 문자도 포함하도록 한다
    g 모든 패턴을 검색한다. u 유니코드 전체를 지원한다.
    m 행위 바뀌더라도 검색한다. y 특정 위치에서 검색을 진행한다.

     

     

     

    반응형

    댓글

Designed by Tistory.