본문 바로가기
+ Development

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

by :: Teacher :: 2021. 1. 2.
728x90
반응형

1. 정규표현식이란?

정규표현식(Regular Expression)은 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색' 하거나 '치환' 하는 과정을 매우 간편하게 처리할 수 있도록 하는 수단으로 이야기할 수 있다. 

특히 정규표현식은 프로그래밍(Programming)을 하면서 문자열 처리를 하기 위해서 많이 사용된다. 좀 더 자세한 정보는 위키 백과를 통해서 확인해보도록 하자. 

2. 정규표현식 패턴 및 표준 문법

정규표현식을 이용하여 사용하려면 해당 표현식에서 사용하느냐는 패턴 및 표준 문법에 맞춰서 사용해야 한다. 

메타문자 기능 설명
. 문자 1개의 문자와 일치한다. 단일행 모드에서는 새줄 문자를 제외한다.
[ ] 문자 클래스 "["과 "]" 사이의 문자 중 하나를 선택한다. "¦"를 여러 개 쓴 것과 같은 의미이다. 예를 들면 [abc]d는 ad, bd, cd를 뜻한다. 또한, "-" 기호와 함께 쓰면 범위를 지정할 수 있다. "[a-z]"는 a부터 z까지 중 하나, "[1-9]"는 1부터 9까지 중의 하나를 의미한다.
[^ ] 부정 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않고 ed, fd 등을 포함한다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다.
^ 처음 문자열이나 행의 처음을 의미한다.
$ 문자열이나 행의 끝을 의미한다.
( ) 하위식 여러 식을 하나로 묶을 수 있다. "abc¦adc"와 "a(b¦d)c"는 같은 의미를 가진다.
\n 일치하는 n번째 패턴 일치하는 패턴들 중 n번째를 선택하며, 여기에서 n은 1에서 9 중 하나가 올 수 있다.
* 0회 이상 0개 이상의 문자를 포함한다. "a*b"는 "b", "ab", "aab", "aaab"를 포함한다.
{m, n} m회 이상 n회 이하 "a{1,3}b"는 "ab", "aab", "aaab"를 포함하지만, "b"나 "aaaab"는 포함하지 않는다.
? 0 또는 1회 "a?b"는 "b", "ab"를 포함한다.
+ 1회 이상 "a+b"는 "ab", "aab", "aaab"를 포함하지만 "b"는 포함하지 않는다.
¦ 선택 여러 식 중에서 하나를 선택한다. 예를 들어, "abc¦adc"는 abc와 adc 문자열을 모두 포함한다.

3. 정규표현식 웹 사이트 Tool

정규표현식을 웹 사이트를 통해서 간단히 테스트 혹은 검증 가능하는 Tool 먼저 소개하겠다. 

3.1 regexper

정규표현식을 입력하면 해당 표현식이 어떻게 구현되어있는지를 좀 더 쉽게 볼 수 있도록 하는 사이트이다. 

3.2 regexr

텍스트(Text) 창에 원하는 내용을 넣고 정규표현식을 구현하면서 원하는 부분대로 문자열을 찾는지에 대해서 테스트 및 검증을 할 수 있도록 하는 사이트이다. 

참고로 필자는 정규표현식 작성 시 "3.2 regexr" 사이트에서 원하는 텍스트를 입력 후 정규표현식 작성 후에 "3.1 regexper"를 통해서 표현식이 어떻게 구현이 되어있는지를 살핀 후 코드를 작성하여 사용하고 있다. 

그럼 정규표현식에 대해서 알아보았다. 

이제 정규표현식을 통해서 좀 더 쉽게 문자열 처리를 해보도록 하자. 

다음번에는 정규표현식을 사용하는 예제들을 통해서 더 자세히 알아보도록 하자.

728x90
반응형

댓글


loading