ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정규표현식 패턴 - 정규표현식 | 생활코딩
    INFO/WEB 2021. 10. 8. 18:12
    반응형

     

    ※ 예제 설명

    정규표현식 === 소스 첫 매치 모두 매치

     

     

    위치

    ^

    : 캐럿 뒤에 나오는 패턴이 소스 상에서 시작 위치에 있을 때만 매치

    ^who === who is who

     

    &

    : 달러 앞에 나오는 패턴이 소스 상에서 끝 위치에 있을 때만 매치

    who$ === who is who

     

     

    이스케이핑

    \

    : 백슬래시 뒤에 나오는 문자를 정규표현식에서 의미가 있는 문법적 요소(^, $, 등)가 아닌 일반 문자로 변환

    ^\$ === $12-$13

    *escape(이스케이프) : 코드 상에서 어떤 역할로부터 탈출(해제) 시켜 준다.

     

     

    모든 문자

    .

    : 모든 문자(≒character)를 매치

    .... === test of point


     

     

    특정 문자

    []

    : 스퀘어 브라켓(대괄호) 안에 있는 문자 중 일치하는 문자 하나를 매치

    [oyu] === How do you do?
    [dH]. === How do you do?
    [owy][yow] === How do you do?

     

    -

    : 대시 앞에 나오는 문자부터 대쉬 뒤에 나오는 문자까지의 범위

    [C-F] === ABCDEFGH

     

    ^

    : 스퀘어 브라켓 안에서의 캐럿은 부정의 의미

    [^C-F] === ABCDEFGH

     

     

    서브 패턴

    ()

    : 퍼렌씨시스(소괄호) 안에 파이프(수직선)로 분리한 문자 중 일치하는 문자를 매치

    (on|ues|rida) === Monday Tuesday Friday

     

     

    수량자

    *

    : 아스테리스크(별표) 앞에 나오는 패턴이 있을 수도 있고 없을 수도 있는 것을 의미 (0개 ~ 여러개) ≒ {0,}

    a*b === aab abc bc
    [-@]* === -@- *** -- *** -@-

     

    +

    : 플러스(더하기) 앞에 나오는 패턴이 하나 이상 있음을 의미 (1개 ~ 여러개) ≒ {1,}

    a+b === aab abc bc
    [^ ] === -@- *** -- *** -@-

     

    ?

    : 퀘션(물음표) 앞에 나오는 패턴이 없거나 하나인 경우를 의미 (0개 ~ 1개) ≒ {0,1}

    a?b === aab abc bc
    -@?@?@?- === X--X-@-XX-@@@@-XX-@@-XX

     

    {}

    : 브레이스(중괄호) 안에 있는 숫자만큼 브레이스 앞에 있는 패턴을 매치

    [els]{5} === the darkness bind them
    [els]{2,3} === them all darkness 
    [a-z]{3,} === One ring to bring    // {3,} 은 3개 이상 매치

    * 콤마(쉼표)로 매칭되는 개수의 범위를 정한다. 예를 들어 {1, 3} 은 1개에서 3개까지 매치

     

    ※ 수량자(*, +, ?) 뒤에 ?가 있을 경우 해당 수량자의 최소값으로 매치 

    r.*? === One ring to bring     // 0개 매치
    r.+? === One ring to bring    // 1개 매치
    r.?? === One ring to bring     // 0개 매치

     

    ※ 탐욕적 vs 게으른 수량자

    <div>.+<\/div> === <div>text</div> <div>text2</div>      // .+ 는 탐욕적 선택자
    <div>.+?<\/div> === <div>text</div> <div>text2</div>    // .+? 는 게으른 선택자

     

     

    경계

    \w

    : word(단어) 를 매체

    [a-z]\w* === A1 B2 c3 d_4 e:5 ffGG77--__--

     

    반응형

    댓글

Luster Sun