본문 바로가기
개발 공부/기타

정규표현식(Regular Expression) 정리 with Python

by 호랭개발자 2021. 9. 29.
반응형
정규표현식은 특정한 규칙을 가진 문자열의 집합을 나타내는 데 사용된다. 정규식이라고도 불린다.

 

👀  정규식을 만드는 방법

  • 파이썬에서는 re 모듈을 통해 정규표현식을 제공한다.
    import re
    
    re.compile('[0-9]+')

    re.compile을 사용하여 '[0-9]+'라는 정규식을 컴파일한다.

👀  정규식 패턴

정규식 패턴 의미
. 임의의 하나의 문자를 뜻한다.
x* x가 0회 이상 연속으로 반복되는 것을 의미한다. {0, }과 같은 의미이다.
x*? 0회 이상 연속으로 반복되는 x에 가능한 적게 반복되는 것 즉, x가 0번 반복되는 것을 의미한다. {0}과 같은 의미이다.
x+ x가 1회 이상 연속으로 반복되는 것을 의미한다. {1, }과 같은 의미이다.
x+? 1회 이상 반복되는 x에 대해 가능한 적게 반복되는 것, 즉 x가 1번 반복되는 것을 의미한다. {1}과 같은 의미이다.
x? x가 존재할 수도 존재하지 않을 수도 있음을 의미한다. 
^x 문자열이 x로 시작하는 것을 의미한다.
x$ 문자열이 x로 종료되는 것을 의미한다.
x{n} x가 n번 반복되는 것을 의미한다.
x{n, } x가 n번 이상 반복되는 것을 의미한다.
x{n, m} x가 n번 이상 m번 이하 반복되는 것을 의미한다.
(x) x를 그룹으로 처리하는 것을 의미한다.
x | y x 또는 y가 존재함을 의미한다.
[xz] x 또는 z를 의미한다.   .이나 * 같은 특수문자는 [ ] 내부에서 특수문자가 아니라 문자 그대로 인식된다.
[x-z] x ~ z 사이의 범위의 문자를 의미한다.
[^xy] x 또는 y가 아닌 문자를 의미한다.
\ 이스케이프 문자를 의미한다.
\w 단어를 의미한다. [a-zA-Z0-9_]와 같은 의미이다.
\W 단어가 아닌 것을 의미한다.
\b 단어와 단어가 아닌 문자(\W가 의미하는 것)와의 사이를 의미한다. (위치를 의미한다.)
\B 단어(\w가 의미하는 것,  [a-zA-Z0-9_]) 사이를 의미한다.
\d 숫자를 의미한다.
\D 숫자가 아닌 것을 의미한다.
\s 공백(space, tab)을 의미한다.
\S 공백이 아닌 문자를 의미한다.
\t 탭(tab) 문자를 의미한다.
\x 16진수 문자를 의미한다.
\o 8진수 문자를 의미한다.

 

👀 정규식 Flag

Flag는 정규식에 사용되는 옵션으로 검색하려는 문자열 패턴에 옵션을 추가할 수 있게 한다. 정규식은 문자열 검색 실행 시 일치하는 것이 발견되면 검색을 종료하는데 Flag 사용 시 이를 지정할 수 있다.

플래그 의미
g 대상 문자열 내에 패턴과 일치하는 모든 문자를 검색하는 것을 의미한다. 모든 검색 결과를 배열로 반환한다.
i 대상 문자열에서 대소문자를 구분하지 않고 패턴을 검색하는 것을 의미한다.
m 줄바꿈이 존재하는 대상 문자열에서 검색을 진행하는 것을 의미한다.

 

반응형

댓글