참고자료


정규표현식은 텍스트 전처리에서 많이 활용되며, 특정 규칙이 있는 텍스트를 문자열을 표현하여 검색, 대체, 추출 작업을 할 수 있다.

1️⃣ 정규표현식 관련 함수

파이썬에서는 import re를 통해 사용이 가능하다.

TypeCodeDescription
컴파일re.compile정규표현식을 미리 컴파일 해 속도와 편의성을 높인다
검색re.search
re.match
정규표현식과 일치하는 첫번째 매치를 Match객체로 반환한다
문자열의 처음부터 정규표현식과 매치되는지를 검색하여 Match로 반환한다
추출re.split
re.findall
re.finditer
정규표현식 기준으로 문자열을 분리하여 리스트로 반환한다
정규표현식과 매칭되는 문자열을 리스트로 반환한다
정규표현식과 매칭되는 문자열을 이터레이터 객체로 반환한다
대체re.sub정규표현식과 매칭되는 문자열을 지정한 문자열로 대체한다

2️⃣ 문법

📋 문자열

RegexDescriptionRegexDescription
.임의의 한 문자[a-z]소문자 알파벳
^문자열의 시작[A-Z]대문자 알파벳
$문자열의 끝[ㄱ-ㅎ]한글 자음
[abc]대괄호 안의 문자 중 하나[ㅏ-ㅣ]한글 모음
[^abc]대괄호 안의 문자를 제외[ㄱ-ㅎ]한글 자음/모음
[0-9]숫자[가-힣]한글

📋 반복 횟수

RegexDescriptionRegexDescription
*앞 문자가 0번 이상 반복{n}앞 문자 n번 반복
+앞 문자가 1번 이상 반복{n,}앞 문자 n번 이상 반복
?앞 문자가 0 또는 1번 반복{n,m}앞 문자 최소 n번 최대 m번 반복

📋 포맷 형식

RegexDescriptionRegexDescription
\d숫자([0-9]와 동일)\D숫자를 제외한 문자
\w단어를 나타내는 문자\W단어를 나타내지 않는 문자
\s공백(스페이스, 탭 등)\S공백이 아닌 문자
(.*?)모든 문자열 매칭(비탐욕적: 최소매칭)

3️⃣ 활용

📋 다중 공백 제거하기

import re
 
text = "이    문장은 불필요한    공백을  포함하고             있습니다"
refined_text = re.sub(r'\s+', ' ', text)
 
print(refined_text)
이 문장은 불필요한 공백을 포함하고 있습니다

📋 특정 문자 사이에 있는 텍스트 가져오기

import re
 
compile = re.compile(r'\[(.*?)\]')
texts = [
    "[데이터사이언스랩] AI 연구 진행상황 보고",
    "[기업이름] 2024년도 AI바우처 사업 계획서 제출의 건",
    "[스마트팩토리] 예지보전 관련 회의 요청의 건"
]
 
for text in texts:
    result = compile.search(text)
    print(result.group(1))
데이터사이언스랩
기업이름 
스마트팩토리

관련 글