정규표현식이란  ? 

문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴)입니다. 크게 다음과 같은 역할을 합니다. 
    1. 문자 검색 (search)
    2. 문자 대체 (replace)
    3. 문자 추출 (extract)

 

제가 사용했었을 때는 이메일, 패스워드 검사 정도로 사용해봤었고,  복잡한 문자 일치 기능 같은 것도 빠르게 수행할 수 있다고 합니다. 자바스크립트는 직접 빌드된 정규표현식을 지원하는 언어 중 하나이고, syntax가 좀 가독성이 떨어지나 익숙해지면 편하게 사용 가능할 것으로 보입니다. 

 

 

정규식 생성 방법

생성자 함수 방식

const evanInfo = `
  010-1234-5678
`

const regexp_number = new RegExp("[0-9]{1,}","g")
console.log(evanInfo.match(regexp_number)); //['010','1234','5678']

RegExp 생성자 함수를 호출하여 사용 가능합니다.

 

 

리터럴(Literal) 방식 

const evanInfo = `
  010-1234-5678
`

const regexp_number = /[0-9]{1,}/g;
console.log(evanInfo.match(regexp_number));

보통의 경우 리터럴 방식으로 처리한다.  훨씬 편한 느낌이 난다.

 

정규표현식의 메소드 

Method Syntax  Description
exec 정규식.exec(문자열) 일치하는 하나의 정보(Array) 반환
test 정규식.test(문자열) 일치 여부(Boolean) 반환
match 문자열.match(정규식) 일치하는 문자열의 배열(Array) 반환
search 문자열.search(정규식) 일치하는 문자열의 인덱스(Number) 반환
replace 문자열.replace(정규식, 대체문자) 일치하는 문자열 대체하고 대체 문자열로 변환
split 문자열.split(정규식) 일치하는 문자열을 분할하여 배열로 반환
toString 생성자_정규식.toString() 생성자 함수 정규식을 리터럴 방식으로 변환 

 

정규식 패턴(표현식)

정규식 패턴 설명 
^ 줄의 시작에서 일치 
$ 줄의 끝에서 일치
. 임의의 한 문자와 일치
aㅣb a 또는 b와 일치, 인덱스가 작은 것을 우선 반환
ab? 없거나 1회 가능한 많이 일치
{3} 3개 연속 일치
{3,} 3개 이상 연속 일치 
{3,5}  3개 이상 5개 이하 연속 일치
[abc] a 또는 b 또는 c와 일치
[a-z] a부터 z사이의 문자 구간에 일치(소문자)
[A-Z] A부터 Z사이의 문자 구간에 일치(대문자)
[0-9] 0부터 9사이 문자 구간에 일치(숫자)
[가-힣] 가부터 힣사이의 문자 구간에 일치(한글)
\w 63개 문자(word, 영문 대소문자 52개 + 숫자 10개 + _)에 일치
\d 숫자에 일치
\b \w 가 아닌 모든 문자에 일치
\s 공백 (space, tab)에 일치 
(?=) 앞쪽 일치 (Lookahead)
(?<=) 뒤쪽 일치 (Lookbehind)

 

 

 

 

 

참고 블로그 (Reference Blog)

https://heropy.blog/2018/10/28/regexp/

 

정규표현식, 이렇게 시작하자!

매일 쓰는 것도, 가독성이 좋은 것도 아니지만, 모르면 안되는 정규표현식. 저는 이렇게 공부하기 시작했습니다! (자바스크립트를 기준으로 설명합니다)

heropy.blog

 

'Javascript > MGS-JS' 카테고리의 다른 글

고차함수 - HOF  (0) 2022.07.19
Javascript Data Practical  (0) 2022.07.03
자바스크립트 데이터 - Javascript Data  (0) 2022.07.01
클래스 개념 - Class Concept  (0) 2022.07.01
함수 복습 - Fn Theory Recap  (0) 2022.06.30