TIL/프로그래머스 웹 데브코스

JS_정규표현식 기초 문법 정리

codermun 2021. 8. 4. 16:54
728x90

https://regexone.com/

 

RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs

Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or even documents. And while there is a lot of theory behind formal languages, the following lessons and examples will explore the more prac

regexone.com

정규표현식 연습 사이트!


JS

RegExp

RegExp 객체를 이용해 정규 표현식을 사용할 수 있다.

// 생성자 함함수  방방식식
// new RegExp(표현식)
const regExp1 = new RegExp("^\d+");

// new RegExp(표현식, 플래그)
const regExp2 = new RegExp("^\d+", "gi");

/* 
Literal 방식
문법
/regexp/i
시작기호(/), 패턴, 종료기호(/), 플래그(i)
*/
// 표현식
const regexp1 = /^\d+/;

// 표현식 플래그
const regexp2 = /^\d+/gi;

test

입력받은 문자열에서 찾는 패턴을 입력하여

문자열에서 패턴과 일치하는 부분이 있다면 True || False

const mes1 = "gdg 010-5555-1111 BAAAM";
const mes2 = 'ppapapapapapappaap';

// 정규표현식 리터럴 
const regExp = /\d{3}-\d{3,4}-\d{4}/;
console.log(regExp.test(mes1));
console.log(regExp.test(mes2));


exec

입력받은 문자열에서 찾는 패턴이 있다면

일치하는 패턴 정보를 반환하고  

없다면 null 반환


match

string 객체의 match 함수

exec와 비슷하게 입력받은 문자열에서 찾는 패턴이 있다면 

일치하는 패턴 정보를 반환하지만 일치하는 패턴이 2개 이상일 경우 가장 먼저 찾은 1개만 반환함 

없다면 null 반환

따라서 모두 일치하는 것을 찾기 위해선 matchAll() 함수를 사용해야함


replace

string 객체의 replace 함수

정규표현식 객체 (위 test 에서의 regExp)를 파라미터로 하여

일치하는 패턴이 있는지 찾은 후 원하는 문자열로 변경이 가능하다.

regExp.replace(etc, '이걸로 바꿔줘');

search

string 객체의 search 함수

문자 검색에 해당한다.

정규표현식 객체 (위 test 에서의 regExp)를 파라미터로 하여

일치하는 패턴이 있는지 찾은 후 패턴 정보의 위치(인덱스)를 반환함

2개 이상을 찾아도 처음 찾은 1개의 인덱스를 반환함

따라서 모두 일치하는 것을 찾기 위해선 matchAll() + 플래그로 g를 붙혀주면 된다!.

mes1.matchAll(패턴(ex : /regexp/i/g));

capture

캡쳐가 적용된! 정규표현식을 이용하면

() 괄호 ==> 캡쳐

match 반환값의 1번 인덱스부터  순차적으로 캡쳐가 들어감

const mes1 = "gdg 010-5555-1111 BAAAM";
const mes2 = 'ppapapapapapappaap';

// 정규표현식 리터럴 
// () 괄호 -- capture
const regExp = /(\d{3})-(\d{3,4})-(\d{4})/;
console.log(mes1.match(regExp));
console.log(mes2.match(regExp));


Run-length-encoding

매우 간단한 비손실 압축 알고리즘

연속적인 문자열을 숫자와 문자열로 압축하는 알고리즘

개미 수열을 정규표현식으로 푸는 방법

입력 5 ==> 111221 나와야함

 

 

728x90