JavaScript 정규 표현식을 공부해보자

ShallWeDance·2021년 7월 18일

JavaScript

목록 보기
1/1
post-thumbnail

사실 정규표현식은 JavaScript를 공부하면서 간혹가다가 만나게 되었었다. 하지만 어렵다는 이유로 외면하면서 잠시 미뤄뒀었는데(ㅎ) 이제는 더 이상 미루지 말자는 생각에 공부를 하면서 정리 해보려 한다.

정규표현식(Regular Expression)이란?

정규 표현식은 문자열에 나타나는 특정 문자 조합을 찾기 위해 사용되는 패턴

정규표현식을 이용한다면 특정한 패턴의 문자열 조합을 쉽게 찾아낼 수 있습니다. 기본적인 사용법을 알아둔다면 여러 방향으로 활용할 수 있습니다.


정규표현식 만들기

정규식 리터럴

정규식 리터럴이란 슬래시("/")를 사용하는 방법으로 다음과 같이 사용합니다.

let re = /ab+c/;

정규식 리터럴은 스크립트가 불러와질 때 컴파일됩니다. 만약 정규식이 상수일 경우, 정규식 리터럴을 사용하는 것이 성능을 향상시킬 수 있습니다.

RegExp

RegExp객체의 생성자 함수를 호출하는 방법으로 다음과 같이 사용합니다.

let re = new RegExp("ab+c");

생성자 함수를 사용하면 정규표현식이 실행 시점에 컴파일됩니다. 정규표현식의 패턴이 변경될 수 있는 경우, 혹은 사용자 입력과 같이 다른 출처로부터 패턴을 가져와야 하는 경우에는 생성자 함수를 사용하는 것이 좋습니다.

정규표현식 특수문자 패턴 작성하기

하나 이상의 b들을 찾거나, 공백을 찾는 것과 같이 문자열을 있는 그대로 찾는 것이 아니라 그 이상의 패턴을 찾기를 원한다면 패턴에 특수문자를 포함시켜서 작성하면 문자열을 찾을 수 있습니다.

매칭패턴의미
.모든 문자열(줄바꿈 제외)
a-zA-Z영어(-으로 범위 지정)
ㄱ-ㅎ가-힣한글(-으로 범위 지정)
0-9숫자(-으로 범위 지정)
\d숫자
\D숫자가 아닌 것
\w영어, 숫자, _
\W\w가 아닌 것
\sspace 공백
\Sspace 공백이 아닌 것
\특수기호특수기호

검색패턴 기호의미
|OR
[]괄호안의 문자들 중 하나
[^string]괄호안의 문자 제외
^string특정 문자열로 시작
string$특정 문자열로 끝
()그룹 검색 및 분류
(?:패턴)그룹 검색
\b문자열의 처음/끝
\B문자열의 처음/끝이 아님

수량패턴 기호의미
?최대 한번 반복
*없거나 있거나
+최소 한개 반복
{n}n개 반복
{n, m}최소 n개 최대 m개

정규표현식에서 쓰이는 메소드

메소드의미
exec대응되는 문자열을 찾는 RegExp 메소드, 대응되는 문자열을 찾지 못했을 경우 null을 반환, 일치하는 항목들을 배열로 반환
test대응되는 문자열을 찾는 RegExp 메소드, 대응되는 문자열을 검사해서 boolean 값으로 반환
match대응되는 문자열을 찾는 RegExp 메소드, 대응되는 문자열을 찾지 못했을 경우 null을 반환, exec와 유사하지만 무조건 첫번째 매칭 결과만 반환
search대응되는 문자열이 있는지 검사하는 string 메소드, 대응되는 부분의 index를 반환
replace대응되는 문자열을 찾아 다른 문자열로 치환하는 string 메소드
split정규식 또는 문자열로 대상 문자열을 나누어 배열로 반환하는 string 메소드


참고 자료

MDN
https://curryyou.tistory.com/234

0개의 댓글