728x90
're'는 Python에서 정규 표현식(Regular Expression)을 다루기 위한 내장 모듈이다. 정규 표현식이란 특정한 규칙을 가진 문자열의 집합을 찾고 추출하는 작업을 수행하는 검색 패턴이다.

 

정규 표현식 문법

메타문자 설명
. 한 개의 임의의 문자 "a.c" > abc acc asc
* 문자가 무한개로 존재하거나, 존재하지 않을 수도 있다.
"abc*d" > abccd abccdd abcd
+ 문자가 최소 한 개 이상 존재
"abc+d > abccd abccdd
? 문자가 존재할 수도, 존재하지 않을 수도 있다.
| 둘 중 하나
$ 앞의 문자열로 문자열이 끝난다.
[] 문자 집합(Character Set)
"[abc]" > a b c abc ab bc
^ 문자열의 시작
"^ab" > abb abc abcd
{숫자} 기호 해당 문자를 숫자만큼 반복
"ab{3}c" > abbbc
{숫자1, 숫자2} 기호 해당 문자를 <숫자1>이상 <숫자2> 이하만큼 반복
"ab{3, 5}c" > abbbbbc
[^문자] ^ 기호 뒤에 붙은 문자들을 제외한 모든 문자를 매치

 

import re

text = 'I love to eat apples.'
result = re.search(r'apples?', text)
if result:
    print('Match found:', result.group())
else:
    print('No match')

apple, apples를 모두 찾아낸다.

 

 

정규 표현식 모듈 함수

모듈 함수  
re.compile() 정규 표현식을 컴파일하는 함수이다.  *컴파일(Compile): 프로그래밍 언어를 기계어로 변환하는 과정
re.search() 문자열 전체에 대해 정규 표현식과 매치되는 것을 검색한다.
re.match() 문자열의 처음이 정규 표현식과 매치되는 것을 검색한다.
re.split() 정규 표현식을 기준으로 문자열을 분리하여 리스트로 반환한다.
re.findall() 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열을 찾아서 리스트로 반환한다. 매치되는 문자열이 없으면 빈 리스트로 리턴된다.
re.finditer() 문자열에서 정규 표현식과 매치되는 모든 경우의 문자열에 대한 이터레이터 객체를 반환한다.
re.sub() 문자열에서 정규 표현식과 일치하는 부분에 대해서 다른 문자열로 대체한다.

 

다음과 같이 re.compile() 함수를 사용하여 pattern 객체를 생성하고 re.findall() 함수를 사용하여 문자열에서 대문자로 이루어진 모든 단어를 찾아내는 작업을 수행할 수 있다.

import re
pattern = re.compile(r'\b[A-Z]+\b')  # 대문자로 이루어진 단어 패턴

# pattern 객체를 사용하여 검색 작업 수행 
text = 'Python is a GREAT programming language!'
result = pattern.findall(text)
print(result)  # ['PYTHON', 'GREAT']

 

r

역슬래시(\)를 이스케이프 처리하지 않고 문자 그대로 사용하게 해준다.

*역슬래시를 이스케이프 처리하면 다음에 오는 문자가 특정한 의미를 갖게 된다.

예)

\n --> 개행 문자. 줄바꿈을 해준다.

\t --> 탭 문자.

728x90

+ Recent posts