[정규표현식(Regular Expression) 정리] - 1. 기본 개념

728x90
반응형

정규표현식 Regular Expression

1. 서두

필자가 여러 블로그, 책을 더듬어가며 정리한 정규식 문법에 대한 포스팅이다.
내용이 길어질 예정이라 챕터별로 나누어 포스팅하도록 하겠다.

(본 포스팅 시리즈는 Javascript 문법 내에서 사용되는 표준을 가져와 설정중이다. 다른 언어도 크게 다르진 않는데 언어마다 사용성이 조금씩 다르기 때문에 다른언어에서 사용시엔 해당 언어의 정규표현식 사용법을 참고하여 사용하기 바란다.)

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

기본적인 컨셉은 "특정한 규칙을 가진 문자열들의 집합을 표현하기 위한 형식언어"이다.
좀 더 풀어서 말하자면 어떤 문자열 내에서 특정한 형식 혹은 패턴을 찾기 위해
그 형식 혹은 패턴을 표현 하는 것이라고 할 수 있다.
JSON, XML 처럼 무언가를 표현하기 위한 표준 형식같은 것이라고 보면 된다.
텍스트 편집기나 프로그래밍 언어에서 문자열의 치환, 검색을 위해 지원해주고 있다.

3. 정규표현식 기본 개념

대게 "패턴"이라고도 부르는 정규표현식은 특정 형태나 패턴을 지닌 문자열의 집합을 나타내기 위해 사용한다.

예를 들자면 "apples"과 "people"이라는 두 문자열의 집합을 정규표현식 패턴으로 표현하면, "(ap|peo)ples?"이라고 표현할 수 있는 것이다. 그리고 "people like apples!"라는 문자열에서 패턴 "(ap|peo)ples?"를 검색하게 되면 "people"과 "apples"이 패턴에 일치하여 검색 결과로 나타나게 된다.

위에 예시처럼 정규표현식 패턴을 만드는데 이용되는 요소는 크게 4가지로 구분 된다.

프로그래밍 언어에서의 정규표현식 문법:

/ (패턴문자열, 메타문자, 수량한정자, 그룹, 전후방탐색으로 표현된 패턴) / 플래그

패턴의 시작과 끝은 "/"으로 감싸주고, 필요에 따라 맨 뒤에 플래그를 붙여준다.
  1. 패턴문자열: 패턴 "(ap|peo)ples?"에서 "ap", "peo", "ple"가 바로 패턴 문자열이다.
  2. 메타문자  수량한정자: 패턴 "(ap|peo)ples?"에서 "|"와 "?"가 바로 메타문자이다. 정규표현식 패턴에 쓰이는 문자중에는 특별한 의미를 가지는 메타문자들이 있는데, 각 메타문자의 의미는 다음 포스팅에 더 자세히 설명하겠다.
    ("|" 문자가 알파벳 L의 소문자 처럼 보일 수 있지만 "Shift+₩키"로 입력할 수 있는 Vertical Bar라는 특수문자이다.)
  3. 그룹전후방탐색(look-around): 패턴 "(ap|peo)ples?"에서 "( )"가 바로 그룹을 나타내는 문자이다. 그룹은 패턴의 일부를 그룹으로 묶어줄때 사용하고, 전후방탐색은 위 예시에서 사용되진 않았지만 특정 패턴의 앞 뒤로 다른 패턴이 오는 조건을 더할때 사용된다. 전후방탐색은 내용이 좀 길어질 수 있어 독립적인 포스팅으로 작성하여 설명할 예정이다.
  4. 플래그: 정규표현식의 몇가지 옵션을 더할때 사용하게 된다. 플래그에는 i, g, m, s, u, y 가 있는데 이는 다음 포스팅에서 더 자세히 설명하겠다.

다음 글:

2021.12.02 - [SW/Reference] - [정규표현식(Regular Expression) 정리] - 2. 메타 문자와 플래그

 

[정규표현식(Regular Expression) 정리] - 2. 메타 문자와 플래그

2021.12.02 - [SW/Reference] - [정규표현식(Regular Expression) 정리] - 1. 기본 개념 [정규표현식(Regular Expression) 정리] - 1. 기본 개념 1. 서두 필자가 여러 블로그, 책을 더듬어가며 정리한 정규식 문법..

betaman-workshop.tistory.com

728x90
반응형