![]()
참고자료
정규표현식은 텍스트 전처리에서 많이 활용되며, 특정 규칙이 있는 텍스트를 문자열을 표현하여 검색, 대체, 추출 작업을 할 수 있다.
1️⃣ 정규표현식 관련 함수
파이썬에서는 import re를 통해 사용이 가능하다.
| Type | Code | Description |
|---|---|---|
| 컴파일 | re.compile | 정규표현식을 미리 컴파일 해 속도와 편의성을 높인다 |
| 검색 | re.searchre.match | 정규표현식과 일치하는 첫번째 매치를 Match객체로 반환한다문자열의 처음부터 정규표현식과 매치되는지를 검색하여 Match로 반환한다 |
| 추출 | re.splitre.findallre.finditer | 정규표현식 기준으로 문자열을 분리하여 리스트로 반환한다 정규표현식과 매칭되는 문자열을 리스트로 반환한다 정규표현식과 매칭되는 문자열을 이터레이터 객체로 반환한다 |
| 대체 | re.sub | 정규표현식과 매칭되는 문자열을 지정한 문자열로 대체한다 |
2️⃣ 문법
📋 문자열
| Regex | Description | Regex | Description |
|---|---|---|---|
. | 임의의 한 문자 | [a-z] | 소문자 알파벳 |
^ | 문자열의 시작 | [A-Z] | 대문자 알파벳 |
$ | 문자열의 끝 | [ㄱ-ㅎ] | 한글 자음 |
[abc] | 대괄호 안의 문자 중 하나 | [ㅏ-ㅣ] | 한글 모음 |
[^abc] | 대괄호 안의 문자를 제외 | [ㄱ-ㅎ] | 한글 자음/모음 |
[0-9] | 숫자 | [가-힣] | 한글 |
📋 반복 횟수
| Regex | Description | Regex | Description |
|---|---|---|---|
* | 앞 문자가 0번 이상 반복 | {n} | 앞 문자 n번 반복 |
+ | 앞 문자가 1번 이상 반복 | {n,} | 앞 문자 n번 이상 반복 |
? | 앞 문자가 0 또는 1번 반복 | {n,m} | 앞 문자 최소 n번 최대 m번 반복 |
📋 포맷 형식
| Regex | Description | Regex | Description |
|---|---|---|---|
\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))데이터사이언스랩
기업이름
스마트팩토리
관련 글