javascript

RegExp정규 표현식

노엠디엔 2023. 6. 7. 12:59

정규 표현식이란 일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어이다.

정규 표현식은 문자열을 대상으로 패턴 매칭 기능을 제공한다. 

패턴 매칭 기능이란 특정 패턴과 일치하는 문자열을 검색하거나 추출또는 치환할 수 있는 기능을 말한다.

정규표현식을 사용하면 반복문과 조건문 없이 패턴을 정의하고 테스트하는 것으로 간단하게 체크할 수 있다.

다만 정규 표현식은 주석이나 공백을 허용하지 않고 여러 가지 기호를 혼합하여 사용하기 때문에 가독성이 좋지 않다.

 

정규 표현식 객체(RegExp 객체)를 생성하기 위해서는 정규 표현식과 리터럴 RegExp 생성자 함수를 사용할 수 있다.

 

 

정규표현식객체에도 메서드를 사용할 수 있다.

RegExp.prototype.exec

인수로 전달받은 문자열에 대해 정규 표현식의 패턴을 검색하여 매칭 결과를 배열로 반환한다. 

결과가 없는 경우 null을 반환한다.

RegExp.prototype.test

test메서드는 인수로 전달받은 문자열에 대해 정규 표현식의 패턴을 검색하여 매칭 결과를 불리언 값으로 반환한다.

 

String.prototype.match

match메서드는 대상 문자열과 인수로 전달받은 정규 표현식과의 매칭결과를 배열로 반환한다.

플래그

패턴과 함께 정규 표현식을 구성하는 플래그는 정규 표현식의 검색 방식을 설정하기 위해 사용한다.

선택적인 옵션으로 하나 이상의 플래그를 동시에설정가능하다 

i  ignore case 대소문자를 구별하지 않고 패턴 생성
g global
대상문자열 내에서 패턴과 일치하는 모든 문자열 전역 검색
m multi line
문자열의 행이 바뀌더라도 패턴 검색을 계속 한다.

정규 표현식은 패턴과 플래그로 구성된다. 패턴은 문자열의 일정한 규칙을 표현하기 위해 사용하며, 플래그는 검색 방식을 

설정하기 위해 사용한다.

패턴은 /로 열고 닫으면 문자열의 따옴표는 생략한다. 따옴표를 포함하면 따옴표도 패턴에 포함되어 검색된다.

패턴 메타문자 또는 기호로 표현할 수 있다.

 

자주 사용하는 정규 표현식

이번 정규 표현식 공부를 통해 난해했던 표현식 사용법에 대해 좀 알게되었다.

사용 하는 방법이 완전 다른 언어를 공부하는 느낌이라 어려웠고 코드를 읽는 면에서 가독성이 

굉장히 문제가 될 것 같았다. 정규 표현식을 사용하는 것보다 다른 플러그인이나 다른 방법을 찾아는 보는 것도

좋을 것 같다는 생각이 들었다.

 

책: Modern 자바스크립트 deep dive