본문 바로가기
KDT TIL Note/JS

[JS] 정규표현식

by 메리뉴데이 2022. 12. 23.

정규표현식(정규식)이란,

문자열에서 특정 문자 조합을 찾기 위한 패턴이다.

JS 고유의 문법은 아니고 대부분의 프로그래밍 언어와 코드 에디터에 내장되어 있다.

표준 내장 객체인 RegExp의 메서드 exec(), test()

표준 내장 객체인 String의 메서드 match(), matchAll(), replace(), replaceAll(), search(), split()와 함께 사용할 수 있다 !

 

 

 

<정규식의 기능>

정규식은 문자열을 대상으로 다음과 같은 패턴 매칭 기능을 제공한다.

1. 문자 검색(search)

2. 문자 대체(replace)

3. 문자 추출(extract)

 

 

 

<정규 표현식 생성방식>

정규 표현식 객체(RegExp 객체)를 생성하기 위해서 다음의 두 가지 방법이 있다.

1. 리터럴 방식 : 슬래시(/)로 시작과 종료를 나타내며 표현(패턴)을 감싸 작성한다.

   스크립트를 불러올 때 컴파일되기 때문에, 변경될 일이 없는 패턴에 리터럴 방식을 사용하면 성능이 향상될 수 있다.

   /표현/옵션

// 표현(패턴): ab+c
// 옵션(플래그): gi

const re = /ab+c/gi

 

2. 생성자 호출 방식 : 생성자 함수를 사용하면 정규식이 런타임에 컴파일된다.

    바뀔 수 있는 패턴이나 사용자 입력 등 외부에서 가져오는 패턴의 경우에 사용한다.

    new RegExp('표현', '옵션')

const re = new RegExp('ab+c', 'gi')

 

 

 

<정규식의 옵션(플래그)>

정규 표현식의 검색 방식을 설정하기 위해 옵션을 필요에 따라 선택적으로 사용한다.

아무 옵션도 사용하지 않을 때에는

대소문자를 구별하고, 표현 검색 매칭 대상이 1개 이상 존재한다고 해도 첫 번째 매칭된 대상만 검색하고 종료한다 !

 

옵션(플래그) 옵션 의미 옵션 기능
i ignoreCase 대소문자 구별하지 않음
g global 전체 영역에서 탐색
m multiline 여러 줄을 탐색하고 각 줄이 한 단위(시작과 끝)로 여겨짐
s   .이 개행 문자도 포함하도록 하는 dotAll 모드를 활성화함(IE는 지원 안함)
u unicode 유니코드 인코딩시 4바이트의 문자를 한 문자로 인식할 수 있게 처리
y sticky 대상 문자열의 현재 위치에서 탐색 시작

 

 

 

 

 

 

 

<정규식 테스트 사이트>

정규식을 간단하게 적용해볼 수 있는 사이트들

cf. 프로그래밍 언어에 따라 표현식이 다소 상이할 수 있다.

 

 

 

1. https://regex101.com/

 

regex101: build, test, and debug regex

Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET.

regex101.com

 

 

2. https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

 

3. https://regexper.com/

 

Regexper

 

regexper.com

 

 

 

 

 

'KDT TIL Note > JS' 카테고리의 다른 글

[KDT] JSON  (0) 2023.01.27
JS로 OMDb API 사용하기  (1) 2022.12.16
[KDT JS] Node.js  (0) 2022.12.06
JS 표준 내장 객체 - String 메서드  (0) 2022.10.28