정규 표현식과 정규식

eeensu·2023년 7월 30일
0

javascript

목록 보기
7/33
post-thumbnail

정규 표현식과 정규식

문자열에서 특정 문자 조합을 찾기 위한 패턴이다. js에서는 정규 표현식도 객체로서, RegExpexec()test() 메서드를 사용할 수 있다. String 형태의 match(), matchAll(), replace(), replaceAll(), search(), split() 메서드와 함께 사용할 수 있다.




정규 표현식 만들기

  1. 정규 표현식 리터럴
const re = /ab+c/

정규 표현식 리터럴은 스크립트를 불러올 때 컴파일되므로, 바뀔 일이 없는 패턴의 경우 리터럴을 사용하면 성능이 향상될 수 있다.


  1. RegExp 객체의 생성자 호출 :
const re = new RegExp('ab+c')

생성자 함수를 사용하면 정규 표현식이 런타임에 컴파일 된다. 바뀔 수 있는 패턴이나, 사용자 입력 등 외부 출처에서 가져오는 패턴의 경우 사용한다.




특징

정규 표현식 패턴은 /abc/ 처럼 단순한 문자로 구성하거나, /ab+c//Chapter (|d)|/|d*/ 처럼 단순한 문자와 특수 문자의 조합으로 구성할 수도 있다. 특히 (|d+) 에 나타난 괄호는 정규 표현식에서 기억 장치처럼 쓰여서, 괄호의 안쪽 패턴과 일치한 부분을 나중에 사용할 수 있도록 기억한다.

예를 들어, 'Hi do you know your abc's?''The latest airplane designs evolved from slabcraft.' 두 문자열에서 일치에 성공하고, 일치하는 부분은 'abc' 일 것이다. 반면 후자에서는 일치하지는 않는데, 이 문자열은 부분 문자열로 'abc' 를 포함하긴 하지만, 정확하게 'abc' 를 포함하지는 않기 때문이다.

하나 이상의 'b' 를 찾는다거나 공백 문자를 찾는 등 직접적인 일치 이상의 탐색이 필요할 땐 특수 문자를 사용한다. 예컨대 하나의 'a' 이후에 0개 이상의 'b', 그 뒤의 'c'와 일치해야 하면 /ab*c/ 패턴을 사용할 수 있다. 'b' 뒤의 *는 이전 항목의 0번 이상 반복을 의미한다.



사용 시기

정규표현식은 문자열 패턴을 검색, 추출, 치환하거나 유효성 검사 등의 작업을 수행하는데 사용되는 강력한 도구이다. 정규표현식은 다양한 상황에서 유용하게 활용될 수 있다.

  • 문자열 검색 및 추출
    이메일 주소, 전화번호, URL 등의 특정 패턴이나 문자열을 검색하거나 추출할 때 사용된다.

  • 데이터 유효성 검사
    사용자의 이메일 형식, 비밀번호와 숫자의 형식 등의 입력 데이터의 유효성을 검사하는 데 사용된다.

  • 문자열 치환 및 변경
    문자열 내의 특정 패턴을 다른 문자열로 치환하거나 변경할 때 사용된다. 예를 들어 특정 단어를 강조 표시하거나 바꾸는 작업에 활용될 수 있다.

  • 파일 처리
    파일명, 경로 등의 문자열에서 필요한 정보를 추출하거나 변경할 때 사용된다. 파일 확장자 추출, 경로 분리 등에 유용하다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

좋은 글 감사합니다.

답글 달기