안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.
자바스크립트를 공부하면서 정규식이란 말을 한 번쯤을 들어 봤을 것입니다.
정규식은 코딩을 하면서 많이 사용하지도 않고 사용하기도
힘들어서 나중에 배워야지 하는 경우가 대부분입니다.
하지만 정규식을 한 번만 잘 배워두면 어렵지 않게 사용하실 수 있습니다.
정규 표현식의 사용 이유
정규표현식은 문자열을 판독하는 언어 패턴이라고 생각하면 됩니다.
간단한 문자 검색부터, 전화번호, 이메일, 비밀번호 검사 등 복잡한 문자열을 빠르게 검색할 수 있습니다.
자바스크립트에서의 정규표현식은 보통 다음과 같은 기능을 수행합니다.
1. 문자 검색 기능
2. 문자 대체 기능
3. 문자 추출 기능
자바스크립트에서 정규식을 생성하는 방법은 크게 두 가지가 있습니다.
생성자 함수 방식으로 RegExp 생성자를 호출하여 생성할 수도 있고
리터럴 방식으로 / 로 감싸진 방식으로 생성할 수도 있습니다.
const regexp1 = new RegExp("^abcd"); // RegExp 생성자 함수 방식
const regexp = /^abcd/; // 리터럴 방식
생성자 함수 방식보다 리터럴 방식이 편리하여 보통의 경우에는 리터럴 방식을 사용합니다.
하지만 경우에 따라서는 RegExp 생성자를 사용해야 하는 경우도 있습니다.
자바스크립트 메소드
메소드 | 문법 | 설명 |
exec | 정규식.exec(문자열) | 검색 후 일치하는 하나의 정보를 Array로 반환 |
test | 정규식.test(문자열) | 검색 후 일치 여부를 Boolean으로 반환 |
match | 문자열.match(정규식) | 검색 후 일치하는 문자열을 배열로 반환 |
search | 문자열.search(정규식) | 검색 후 일치하는 문자열의 인덱스를 숫자로 반환 |
replace | 문자열.replace(정규식,대체문자) | 검색 후 일치하는 문자열을 대체문자로 치환 한 후 문자열을 반환 |
split | 문자열.split(정규식) | 검색 후 일치하는 문자열을 분할하여 배열로 반환 |
플래그
플래그를 사용하면 기존 결과 값과 완전히 다른 결과가 도출될 수도 있습니다.
플래그는 정규 표현식의 추가 옵션입니다. 정규 표현식으로 검색하려는 문자열의 패턴에 옵션을 추가하여 검색 결과를 반환하게 합니다.
플래그 | 설명 |
g | 모든 문자를 검색한다. (global의 약자) |
i | 영어 대소문자를 구분하지 않는다. (ignore case의 약자) |
m | 여러 줄에 시작과 끝 부분을 있게 해준다. (multi line의 약자) |
정규식을 생성하는 방법도 약간 다릅니다.
const regexp1 = new RegExp("[a-z]", "gi"); // RegExp 생성자 함수 방식
const regexp = /[a-z]/gi; // 리터럴 방식
정규 표현식(패턴)
표현식은 매우 다양해서 그 기호와 매칭 되는 의미를 암기하지 않으면 사용할 수 없습니다.
아래 표는 자주 사용하는 패턴입니다.
정규 표현식 | 설명 |
^ | 줄(line)의 시작지점에서 일치 |
$ | 줄(line)의 끝지점에서 일치 |
. | 임의 한 문자와 일치 (특수기호, 띄어쓰기 까지 포함) |
* | 0회 이상 반복되는 문자와 일치 |
+ | 1회 이상 반복되는 문자와 일치 |
? | 포함하지 않거나 1회만 일치 |
{2} | 2개 연속 일치 |
{2, } | 2개 이상 연속으로 일치 |
{2, 6} | 2에서 6개 사이로 연속 일치 |
[abc] | a or b or c 중 일치, [ ] 안에서는 점 or 별 같은 특수 문자도 일반 문자로 처리 |
[^abc] | a or b or c 가 아닌 나머지 문자에 일치 |
[a-z] | a에서 z까지 소문자 구간에 일치 |
[A-Z] | A에서 Z까지 대문자 구간에 일치 |
[0-9] | 0에서 9까지 숫자에 일치 |
[가-힣] | 가에서 힣까지 한글에 일치 |
\d | 숫자에 일치 |
\D | 숫자를 제외 한 문자에 일치 |
\w | 영어, 숫자, 언더바에 일지 |
\W | 영어, 숫자, 언더바를 제외한 문자에 일치 |
\s | 공백에 일치 |
\S | 공백을 제외한 문자에 일치 |
\특수문자 | 특수문자에 일치 |
\b | 문자열 처음과 끝 |
\B | 문자열 처음과 끝 제외 |
\n | 줄바꿈 |
\0 | Null에 일치 |
\t | 탭에 일치 |
'IT 소스 > 정규 표현식' 카테고리의 다른 글
자주 사용하는 예제로 알아보는 정규 표현식 (웹사이트 주소) (1) | 2023.01.24 |
---|---|
자주 사용하는 예제로 알아보는 정규 표현식 (정수 및 소수) (0) | 2023.01.24 |
자주 사용하는 예제로 알아보는 정규 표현식 (비밀번호) (0) | 2023.01.23 |
자주 사용하는 예제로 알아보는 정규 표현식 (E-mail) (0) | 2023.01.20 |
자주 사용하는 예제로 알아보는 정규 표현식 (전화번호) (0) | 2022.04.11 |