반응형
정규표현식은 특정한 규칙을 가진 문자열의 집합을 나타내는 데 사용된다. 정규식이라고도 불린다.
👀 정규식을 만드는 방법
- 파이썬에서는 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 | 줄바꿈이 존재하는 대상 문자열에서 검색을 진행하는 것을 의미한다. |
반응형
댓글