코딩/자바스크립트

JS / 정규표현식 RegExp

민여 2022. 4. 5. 20:26

정규 표현식이란

문자열 검색 패턴을 형성하는 일련의 문자를 의미 

텍스트 검색 및 바꾸는 작업에 사용 

이메일,id,pw같은 복잡한 문자 일치 검색 패턴으로 빠르게 수행가능 

 

역할  search, replace, extract

테스트 사이트는 https://regex101.com/ 외 4가지 - 오쌤 사이트 참고바람 

https://ossam5.tistory.com/240?category=938138 

 

[JS강좌] 26강 자바스크립트 정규표현식(RegExp) - 오쌤의 니가스터디

1. 정규표현식(Regular Expresstions)이란? - 정규표현식이란 문자열 검색 패턴을 형성하는 일련의 문자를 의미합니다. - 검색 패턴은 텍스트 검색 및 텍스트 바꾸는 작업에 사용할 수 있습니다. - 간단

ossam5.tistory.com

 

 

자바스크립트 정규 표현식 생성 

 

1. 변수식 선언방식 

 

문법: var 변수명 = 표현식/플래그;

플래그 =  표현식의 옵션, 원하는 문자 검색 결과를 반환하도록 설정 / 생략가능 

예시 var regExp = /^abc/gi;

 

2. 생성자 함수로 객체 선언방식

 

문법: var 변수명 = new RegExp(표현식,플래그) ; //플래그 생략가능 

예시 var regExp = new RegExp("^abc","gi");

 

자바스크립트에서 제공하는 다양한 속성(properties) 종류

 

속성종류 설명
flags 플래그를 문자열로 반환    ex) /^abc/gi.flags
source 표현식을 문자열로 반환    ex) /^abc/gi.source
global 플래그 g 여부를 불표현식으로 반환   ex) /^abc/gi.global
ignoreCase 플래그 i 여부를 불표현식으로 반환   ex) /^abc/gi.ignoreCase
multiline 플래그 m 여부를 불표현식으로 반환   ex) /^abc/gi.multiline
sticky 플래그 y 여부를 불표현식으로 반환   ex) /^abc/gi.sticky
unicode 플래그 u 여부를 불표현식으로 반환   ex) /^abc/gi.unicode

 

자바스크립트에서 제공하는 다양한 메서드(method) 종류

 

정규표현식을 결과적으로 문자열이기 때문에 String메서드를 사용

메서드 종류 문법 설명
exec( ) 정규식.exec(문자열) 일치하는 하나의 정보 반환
test( ) 정규식.test(문자열) 일치 여부 반환
match( ) 문자열.match(정규식) 일치하는 문자열을 배열 반환
search( ) 문자열.search(정규식) 일치하는 문자열의 인덱스번호를 반환
replace( ) 문자열.replace(정규식,대체문자) 일치하는 문자열을 대체하고 문자열 반환
split( ) 문자열.split(정규식) 일치하는 문자열을 분할하여 배열로 반환
toString( ) 생성자정규식.toString() 생성자 함수 방식의 정규식을 변수 방식의 문자열로 반환

 

플래그(flags) 종류

 

플래그종류 설명
g 모든 문자와 여러 줄 일치(global)
i 영어 대소문자를 구분하지 않고 일치(ignore case)
m 여러 줄 일치(multi line)
u 유니코드
y lastIndex 속성으로 지정된 인덱스에서만 1회 일치(sticky)

 

 

g(global) 모든 문자와 여러 줄 일치하는 경우/ 모든 문자를 검색하겠다는 의미 

var noCase = test.match(/twinkle/g);
var yesCase = test.match(/twinkle/ig);     -> 대소문자 가리지않고 twinkle찾음 

 

 

정규식 패턴 종류는 너무 많아서 위 홈페이지에서 테스트해보면서 맞춰나가기 

 

패턴종류 설명
^ 줄(line)의 시작에서 일치
$ 줄(line)의 끝에서 일치
. 임의의 한 문자와 일치
a|b a 또는 b와 일치, 인덱스가 작은 것을 우선 반환
* 0회 이상 연속으로 반복되는 문자와 가능한 많이 일치. {0,}와 동일
*? 0회 이상 연속으로 반복되는 문자와 가능한 적게 일치, {0}와 동일
+ 1회 이상 연속으로 반복되는 문자에 가능한 많이 일치, {1,}와 동일
+? 1회 이상 연속으로 반복되는 문자에 가능한 적게 일치, {1}와 동일
? 없거나 1회 가능한 많이 일치
?? 없거나 1회 가능한 적게 일치

 

https://www.regexpal.com/

 

Regex Tester - Javascript, PCRE, PHP

RegexPal requires a modern browser. Please update your browser to the latest version and try again.

www.regexpal.com