ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Javascript] RegExp 정규표현식
    Language/Javascript 2024. 7. 9. 13:05

    너무 편리한데 패턴을 자꾸 까먹어서 정리해보았다.

    Regular Expression

    일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어

    문자열을 대상으로 패턴 매칭 기능을 제공

    정규 표현식 생성

    flag

    flag meaning
    g 전역탐색 (g가 없을 경우엔 첫번째 패턴까지만 검색함)
    i 대소문자 구분X
    m 여러줄에 걸쳐 탐색
    u 패턴을 유니코드 포인트의 시퀀스로 간주
    y 대상문자열의 현재 위치에서의 탐색 시작

    패턴

    pattern meaning
    A{1,2} A가 최소 1번, 최대 2번 반복
    A{2} A가 2번 반복
    A{2,} A가 최소 2번 반복
    A+ A가 최소 한번 반복
    A?B A가 최대한번 반복되고 B가 이어짐
    A B
    [AB]+ A 또는 B가 1번 이상 반복
    [A-Za-z]+ A-Z 또는 a-z(알파벳) 가 1번 이상 반복
    [0-9]+ [\d]+ 숫자가 한번 이상 반복
    [\D]+ 숫자가 아닌 문자가 한번 이상 반복
    [\w,]+ 알파벳, 숫자, 언더스코어, ' , ' 가 한번 이상
    [\W]+ 알파벳,숫자,언더스코어 아닌 문자 하나 이상
    [^0-9]+ 0-9가 아닌 문자 하나 이상
    ^https https로 시작하는지
    com$ com으로 끝나는지
    ^[\s]+ 여러가지 공백문자([\t\r\n\v\f]를 의미)로 시작하는지
    [0-9a-zA-Z]* 숫자 또는 알파벳이 0번 이상

    메서드

    RegExp.prototype.exec : 매칭 결과를 배열로 반환

    const target = 'Is this all there is?';
    const regExp = /is/;
    
    regExp.exec(target);
    
    // expected
    // ["is", index:5, input:"Is this all there is?", groups:undefined]
    • 매칭 결과가 없는 경우 null
    • g 플래그를 지정해도 첫번째 매칭 결과만 반환

    RegExp.prototype.test : 매칭 결과를 불리언으로 반환

    const target = 'Is this all there is?';
    const regExp = /is/;
    
    regExp.test(target);
    
    // expected
    // true

    String.prototype.match : 매칭 결과를 배열로 반환

    const target = 'Is this all there is?';
    const regExp = /is/g;
    
    target.match(regExp);
    
    // expected
    // ["is", "is"]
    • exec와 다르게 g플래그를 붙이면 전체 문자열을 탐색

    String.prototype.replace : 정규표현식 패턴의 문자를 대체

    const target = 'abc#123';
    // 대소문자 구분없이 숫자 또는 알파벳이 아닌 문자(특수문자)으로 시작
    const regExp = /[^0-9A-Za-z]/gi; 
    
    target.replace(regExp, '');
    
    // expected
    // abc123

    참고 : Javascript deep dive 31장

    'Language > Javascript' 카테고리의 다른 글

    [JavaScript] 비동기 함수가 뭔데  (0) 2024.11.24
Designed by Tistory.