정규 표현식(Regular expression)

정규 표현식(Regular expression)에 대해서 알아보겠습니다.



정규 표현식은 무엇인가를 찾을 때, 유용하게 사용할 수 있습니다.


정규 표현식 동작을 확인할 수 있는 사이트입니다.



정규 표현식에는 메타 문자들이 있습니다. (*, ., \ 등 )

메타 문자들은 앞에 있는 하나의 문자에만 적용됩니다.


예를 들어, AB*C 면 '*'는 B에만 적용됩니다.

AC, ABC, ABBC, .... 등이 찾아질 것입니다.


예외적인 메타 문자가 있는데, 그것은 '|'입니다.

예를 들어, AB|C 이면 AB 또는 C입니다.

이처럼, '|'는 단어 단위입니다.


참고로, '_'는 문자로 취급됩니다.


예시는 아래에서 확인하실 수 있습니다.




'^'

시작을 찾는 표현입니다.

^H = 시작이 H인 지점입니다.



'\A'

시작을 찾는 표현입니다.

\AH = 시작이 H인 지점입니다.



'$'

끝을 찾는 표현입니다.

e$ = 끝이 e로 끝나는 지점입니다.



'\Z'

끝을 찾는 표현입니다.

e\Z = 끝이 e로 끝나는 지점입니다.



'.'

a-z, A-Z, 특수문자, 0-9, 공백들 중에서 하나를 찾는 표현입니다.



'|'

두 가지 중에 하나를 찾는 표현입니다.

단어 단위로 적용됩니다.

h|f = h 또는 f를 찾습니다.

po|up = po 또는 up을 찾습니다.




'[]'

'|' 적용을 여러 개 할 때 사용합니다.

[hfo] = h 또는 f 또는 o를 찾습니다.



'-'

'[]'와 함께 쓰이며, 순차적인 단어의 범위 지정할 때 사용됩니다.

a-z = a에서 z까지를 나타냅니다.



'[^]'

'[]'에 포함된 문자를 제외한 나머지를 '또는'으로 찾습니다.

[^hfo] = 'h', 'f', 'o'를 제외한 나머지 문자들을 '또는'으로 찾습니다.



'()'

특정 범위를 지정하고 싶을 때 사용합니다.

h(e|a)llo = hello 또는 hallo를 찾습니다.



'?'

없거나, 하나만 있는 것을 찾습니다.

hell?o = helo 또는 hello를 찾습니다.



'*'

0부터 무한까지의 개수로 찾습니다.

hel*o = heo, helo, hello, helllo, hellllo, helllllo ,...를 찾습니다.



'+'

1부터 무한까지의 개수로 찾습니다.

hel+o = helo, hello, helllo, hellllo, helllllo ,...를 찾습니다.



'{최소,최대}'

최소 개수부터 최대 개수까지 탐색합니다.

hel{1,2}o = helo, hello를 찾습니다.

'{ ,최대}'처럼 최솟값을 생략하고 표현하면, 0부터 최대까지를 찾습니다.



'\'

구분자라고 부르며, 특수한 기능이 있습니다.

메타 문자 기능 말고, 메타 문자를 검색하고 싶을 때, 구분자를 사용합니다.

\* = '*' 메타 문자가 아닌 문자 '*'를 검색



'\b'

단어 처음과 끝의 공백 또는 특수문자('_'는 문자로 취급)입니다.

hello\b = 전체 문자열이 'hello!@#$ helloa'라면, 'hello!@#$'에서 hello만 찾아냅니다. ('helloa'는 무시)



'\B'

첫 번째 문자를 제외한, 문자 사이의 단어를 찾아냅니다.

\Be = 전체 문자열이 'hello ell'라면, 'hello' 안의 'e'만 찾아냅니다. ('ell'은 무시)



'\w'

숫자, 영어 그리고 모든 문자를 찾습니다.

\w = [a-zA-Z0-9_]



'\W'

숫자, 영어 그리고 모든 문자를 제외한 나머지를 찾습니다. (특수문자, 공백 등)

\W = [^a-zA-Z0-9_]



'\s'

공백문자를 찾습니다. ('\n' 등)

\s = ' '



'\S'

공백 문자를 제외한 나머지를 찾습니다.



'\d'

모든 숫자를 찾습니다.

\d = [0-9]



'\D'

숫자를 제외한 나머지를 찾습니다.



'\t'

'\t' 문자를 찾습니다.



'\n'

'\n' 문자를 찾습니다.



'{숫자}'

숫자만큼의 문자를 찾습니다.

h{2} = hh를 찾습니다.

\S{2} = 길이가 2인 모든 문자를 찾습니다.



끝.


카테고리: re, Python

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

Android Compose Coil library

KiCad 시작하기 1 (회로도 만들기)

Forensics .pyc 파일 .py로 복구하기

Android Notification with Full Screen

iOS Swift callAsFunction

iOS Error Undefined symbol Testing.Trait

황전 휴게소(순천 방향) 추천 메뉴

Android Compose automation for getting localized images to use on Play Store app image