정규 표현식(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

댓글

이 블로그의 인기 게시물

KiCad 시작하기 7 (FreeRoute 사용하기 2)

일본어 문장부호

KiCad 시작하기 3 (새로운 소자 추가하기)

Python urllib.parse.quote()

음악 총보(Score), 파트보(Part)

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

KiCad 시작하기 2 (PCB 만들기)

Hand Counter App

KiCad 시작하기 6 (FreeRoute 사용하기 1)

RFC 9421