[JavaScript] 정규표현식 (Regexp)

heejinsung·2021년 9월 29일
0

JavaScript

목록 보기
3/6

정규표현식이란?

정규식, Regular Expression
문자열을 검색하고 대체하는 데 사용 가능한 일종의 형식 언어(패턴)이다.
간단한 문자 검색부터 이메일,패스워드 검사 등의 복잡한 문자 일치 기능 등을 정규식 패턴으로 빠르게 수행할 수 있다. 단, 정규식 패턴이 수행 내용과 매치가 잘 안되어 가독성이 많이 떨어지는 단점이 있다.

정규표현식 역할

  • 문자 검색 (search)
  • 문자 대체 (replace)
  • 문자 추출 (extract)

정규식 생성

생성자 함수 방식

const regexp1 = new RegExp("표현", "옵션");
const regexp1 = new RegExp("abc", "gi");

RegExp 생성자 함수를 호출하여 사용할 수 있다. 생성자 함수를 사용하면 정규식이 실행 시점에 컴파일된다. 정규식의 패턴이 변경될 수 있는 경우, 혹은 사용자 입력과 같이 다른 출처로부터 패턴을 가져와야 하는 경우에는 생성자 함수를 사용해야한다!.

리터럴(Literal) 방식

const regexp1 = /^abc/
// /표현식/

const regexp2 = /^abc/gi/
// /표현식/플래그/

정규표현식은 /로 감싸진 패턴을 리터럴로 사용한다. 정규식 리터럴은 스크립트가 불러와질 때 컴파일된다. 만약 정규식이 상수라면, 이렇게 사용하는 것이 성능을 향상시킬 수 있다.

예제 문자

const str = `
010-1234-5678
thesecon@gamil.com
http://www.omdbapi.com/?apikey=7035c60c&s=frozen
The quick brown fox jumps over the lazy dog.
aabbbcccccdd
`;

메소드

메소드문법설명
test정규식.test(문자열)일치 여부(Boolean) 반환
match문자열.match(정규식)일치하는 문자의 배열(Array) 반환
replace문자열.replace(정규식,대체문자)일치하는 문자를 새로운 문자로 대체

플래그(옵션)

플래그설명
g모든 문자 일치(global)
i영어 대소문자를 구분 않고 일치 (ignore case
m여러 줄 일치 (multi line)

패턴(표현)

패턴설명
^ab줄(Line) 시작에 있는 ab와 일치
ab$줄(Line) 끝에 있는 ab와 일치
.임의의 한 문자와 일치
a|ba 또는 b와 일치
ab?b가 없거나 b와 일치
{3}3개 연속 일치
{3,}3개 이상 연속 일치
{3,5}3개 이상 5개 이하 (3~5개) 연속일치
[abc]a 또는 b 또는 c
[a-z]a부터 z 사이의 문자 구간에 일치 (영어 소문자)
[A-Z]A부터 Z 사이의 문자 구간에 일치 (영어 대문자)
[0-9]0부터 9 사이의 문자 구간에 일치 (숫자)
[가-힣]가부터 힣 사이의 문자 구간에 일치 (한글)
\w63개 문자(Word, 대소영문52개 + 숫자10개 + _)에 일치
\b63개 문자에 일치하지 않는 문자 경계(Boundary)
\d숫자(Digit)에 일치
\s공백(Space, Tab 등)에 일치
(?=)앞쪽 일치(Lookahead)
(?<=)뒤쪽 일치(Lookbehind)

0개의 댓글

관련 채용 정보