본문 바로가기
Programming

정규표현식

by BTC우동 2023. 9. 15.

안녕하세요.
오늘은 정규 표현식에 대해 알아 보겠습니다.

정규 표현식이란?
정규 표현식(Regular Expression, 이하 regex)은 문자열의 패턴을 찾거나 매칭하기 위한 식입니다. 이는 다양한 언어와 도구에서 사용되며, 복잡한 문자열 처리를 간단하게 해주는 강력한 도구로서 인기를 끌고 있습니다.

기본 문법
1. 메타문자
메타문자는 정규 표현식에서 특별한 의미를 가지는 문자입니다: . ^ $ * + ? { } [ ] \ | ( )

2. 문자 클래스
'[ ]' 사이의 문자들과 매치를 의미합니다. 예를 들어, '[abc]'라면 'a', 'b', 'c' 중 하나와 매치됩니다.

3. 반복 *
'*' 기호 바로 앞에 있는 문자가 0회 이상 반복될 때와 매치됩니다.

4. 반복 +
'+' 기호 바로 앞에 있는 문자가 1회 이상 반복될 때와 매치됩니다.

5. 반복 ?
'?' 기호 바로 앞에 있는 문자가 없거나 한 번 있을 때와 매치됩니다.

파이썬에서의 사용법
파이썬에서는 re 모듈을 import하여 정규표현식을 사용할 수 있습니다:

python
import re


다음으로, re.match(pattern, string) 함수를 사용하여 패턴이 문자열과 일치하는지 확인할 수 있습니다:
위 코드는 'Hello'라는 단어가 영문자(a-z 또는 A-Z) 하나 이상으로 구성되어 있는지 확인합니다.

표현식 정리

 표현식
의미 
 ^x
 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다.
x$
 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다.
 .x
 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다.
 x+
 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다.
 x?
 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다.
 x*
 반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다.
 x|y
 or 를 표현하며 x 또는 y 문자가 존재함을 의미한다.
 (x)
그룹을 표현하며 x 를 그룹으로 처리함을 의미한다.
 (x)(y)
그룹들의 집합을 표현하며 앞에서 부터 순서대로 번호를 부여하여 관리하고 x, y 는 각 그룹의 데이터로 관리된다.
 (x)(?:y)
그룹들의 집합에 대한 예외를 표현하며 그룹 집합으로 관리되지 않음을 의미한다. 
 x{n}
 반복을 표현하며 x 문자가 n번 반복됨을 의미한다.
 x{n,}
 반복을 표현하며 x 문자가 n번 이상 반복됨을 의미한다.
 x{n,m}
 반복을 표현하며 x 문자가 최소 n번 이상 최대 m 번 이하로 반복됨을 의미한다.
 표현식
의미 
[xy]
문자 선택을 표현하며 x 와 y 중에 하나를 의미한다.
 [^xy]
not 을 표현하며  x 및 y 를 제외한 문자를 의미한다.
 [x-z]
range를 표현하며 x ~ z 사이의 문자를 의미한다. 
 \^
escape 를 표현하며 ^ 를 문자로 사용함을 의미한다.
 \b
word boundary를 표현하며 문자와 공백사이의 문자를 의미한다.
 \B
non word boundary를 표현하며 문자와 공백사이가 아닌 문자를 의미한다.
 \d
digit 를 표현하며 숫자를 의미한다. 
 \D
non digit 를 표현하며 숫자가 아닌 것을 의미한다. 
 \s
space 를 표현하며 공백 문자를 의미한다. 
 \S
non space를 표현하며 공백 문자가 아닌 것을 의미한다.
 \t
tab 을 표현하며 탭 문자를 의미한다.
 \v
vertical tab을 표현하며 수직 탭(?) 문자를 의미한다.
 \w
word 를 표현하며 알파벳 + 숫자 + _ 중의 한 문자임을 의미한다. 
 \W
non word를 표현하며 알파벳 + 숫자 + _ 가 아닌 문자를 의미한다. 

 

감사합니다.

좋은 하루 보내세요!

 

댓글