0Pricing
Learn AI with Python · 강의

re 모듈: 검색, 일치, 모두 찾기, 치환

성능을 고려해 re.search(), re.match(), re.findall(), re.sub(), re.compile()을 사용합니다.

re 모듈: 검색, 일치, 모두 찾기, 치환은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

re 모듈

Python은 내장 re 모듈을 통해 정규식을 제공합니다. 핵심 함수는 search, match, findall, sub입니다.

어떤 함수를 선택해야 하는지 아는 것이 문제 해결의 절반입니다.

import re   # always import it first

re.search — 어디서든 찾기

re.search(pattern, text)는 전체 문자열에서 첫 번째 일치 항목을 검색하고 일치 객체를 반환합니다. 일치하는 항목이 없으면 None을 반환합니다.

import re

m = re.search("\d+", "order 42 shipped")
if m:
    print(m.group())   # "42"
    print(m.start())   # 6

re.match — 시작 위치에 고정된 일치

re.match는 문자열의 시작 부분에서만 일치합니다. 패턴이 위치 0에 없으면 뒤쪽에 나타나더라도 None을 반환합니다.

import re

print(re.match("\d+", "42 items"))    # matches "42"
print(re.match("\d+", "items 42"))    # None

search와 match 비교

핵심적인 차이는 다음과 같습니다.

  • match — 패턴이 인덱스 0에서 시작해야 합니다
  • search — 패턴이 어디에나 나타날 수 있습니다

대부분의 경우에는 search가 필요합니다. 접두사 확인이 특별히 필요할 때만 match를 사용하십시오.

re.findall — 모든 일치 항목 가져오기

re.findall은 겹치지 않는 모든 일치 항목을 문자열의 목록으로 반환합니다(일치 객체는 반환하지 않습니다). 추출 작업에 적합합니다.

import re

emails = re.findall("\w+@\w+\.\w+", "a@x.com and b@y.org")
print(emails)   # ["a@x.com", "b@y.org"]

그룹과 함께 사용하는 findall

패턴에 캡처 그룹이 있으면 findall은 전체 일치 항목 대신 캡처된 부분을 반환합니다. 이는 흔히 예상하지 못하는 동작입니다.

여기서 각 튜플은 지역 번호와 나머지 부분을 담습니다.

import re

print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]

re.finditer — 일치 객체

모든 일치 항목의 위치나 그룹이 필요하다면 re.finditer를 사용하십시오. 이 함수는 지연 방식으로 순회할 수 있는 일치 객체를 생성합니다.

import re

for m in re.finditer("\d+", "a1 b22 c333"):
    print(m.group(), "at", m.start())

re.sub — 검색 및 치환

re.sub(pattern, replacement, text)은 모든 일치 항목을 치환 문자열로 바꾸고 새 문자열을 반환합니다.

마스킹, 정규화, 제거와 같은 텍스트 정리의 기본 도구입니다.

import re

clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean)   # "Room # and #"

역참조와 함수를 사용하는 sub

치환 부분에서는 \1로 캡처된 그룹을 참조하거나, 동적인 로직을 수행하는 함수를 사용할 수 있습니다.

import re

# Swap "first last" -> "last, first"
print(re.sub("(\w+) (\w+)", "\\2, \\1", "Ada Lovelace"))

# Function replacement: double each number
print(re.sub("\d+", lambda m: str(int(m.group()) * 2), "a1 b2"))

re.compile — 패턴 재사용

하나의 패턴을 여러 번 사용할 때(예: 반복문 안에서) re.compile은 패턴을 한 번만 만들어 재사용 가능한 패턴 객체로 변환합니다. 더 빠르고 코드도 읽기 쉽습니다.

import re

num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
    print(num.findall(line))

유용한 플래그

플래그는 일치 동작을 변경합니다.

  • re.IGNORECASE — 대소문자를 구분하지 않음
  • re.MULTILINE — ^/$가 각 줄에 대해 일치함
  • re.DOTALL — .이 줄바꿈과도 일치함
import re

print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]

빠른 확인: search와 findall 비교

문서 어디에 나타나든 모든 전화번호의 목록을 가져오려고 합니다.

복습: re 모듈

이제 핵심 정규식 함수를 알고 있습니다.

  • re.search — 어디서든 찾은 첫 번째 일치 항목(일치 객체)
  • re.match — 시작 위치에서만 일치
  • re.findall — 모든 일치 항목의 목록(그룹에 따라 출력이 달라짐)
  • re.finditer — 위치 정보를 포함한 일치 객체
  • re.sub — 역참조나 함수를 사용해 일치 항목 치환
  • 재사용과 동작 제어를 위한 re.compile 및 플래그

다음 주제: 캡처 그룹과 이름 있는 그룹

자주 묻는 질문

“re 모듈: 검색, 일치, 모두 찾기, 치환” 강의는 무료인가요?

네 — “re 모듈: 검색, 일치, 모두 찾기, 치환” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“re 모듈: 검색, 일치, 모두 찾기, 치환”에서 뭘 배우나요?

성능을 고려해 re.search(), re.match(), re.findall(), re.sub(), re.compile()을 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“re 모듈: 검색, 일치, 모두 찾기, 치환” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 정규 표현식 패턴과 문자 클래스
  2. re 모듈: 검색, 일치, 모두 찾기, 치환
  3. 캡처 그룹과 이름 있는 그룹
  4. 정규 표현식을 활용한 인공지능용 텍스트 정제
← Learn AI with Python(으)로 돌아가기