정규 표현식

김용현·2023년 3월 20일
0

JSP

목록 보기
5/5
post-thumbnail

1.정규 표현식이란?

정규 표현식(Regular Expression)은 문자열에서 특정 내용을 찾거나 대체 또는 발췌할 때 사용된다.
정규 표현식을 생성하는 방식에는 생성자 방식과 리터럴 방식이 있다.

// 생성자
new RegExp('표현', '옵션')
new RegExp('[a-z]','gi')

// 리터럴
/표현/옵션
/[a-z]/gi

2. 메서드

정규 표현식을 다루는 데에는 여러가지 메서드가 있다.

//예제 코드
const str = `
010-1234-5678
hellow@naver.com
https://www.naver.com
The quick brown fox jumps over the lazy dog.
abbcccddd
the
`;
//리터럴 방식으로 정규 표현식 생성
const regexp = /fox/gi;
console.log(regexp.test(str)); // true 출력

test는 일치하는 문자의 유무를 확인하고 Boolean타입의 데이터를 리턴해주는 메서드이다. 정규식.test(문자열) 형식으로 사용해야 한다.

const regexp = /hi/gi;
console.log(str.replace(regexp,'fox'); // fox를 hi로 대체

replace는 문자열을 대체해주는 메서드이다. 문자배열을 리턴하며 문자열.replace(정규식,대체문자) 형식으로 사용된다.

const regexp = /fox/gi;
console.log(str.match(regexp) //[fox] 반환

match는 일치하는 문자의 배열(Array)을 반환해주는 메서드이다.
문자열.match(정규식)형식으로 사용된다.


3. 플래그(옵션)

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

위에서 표현 뒤에 '옵션'이 붙는 것을 볼 수 있다. 동일한 메서드를 사용하더라도 다른 옵션을 붙이면 결과 값이 다르게 나온다.


4. 패턴(표현)

패턴은 정규 표현식에 사용되는 표현으로 형식이 특이하기 때문에 직관적으로 이해하기 어렵다. 따라서 암기해두는 것이 좋다.

console.log(str.match(/m$/gm)); // ["m","m"] 출력

$기호는 문자열의 끝을 의미한다. gm 옵션이 붙었으므로 예시 문자열에 hellow@naver.comhttps://www.naver.com가 선택되게 된다.

console.log(str.match(/^0/gm)); // ["m","m"] 출력

^기호는 문자열의 시작을 의미한다. 예시 문자열에서 010-1234-5678가 선택되게 된다.

자주 사용되는 패턴설명
^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)
profile
BeAPro!!

0개의 댓글

관련 채용 정보