정규 표현식(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
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.