산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 정규표현식 마스터: re.match(), re.search(), re.findall() 실전 예제

파이썬에서 정규표현식이란?

정규표현식(regex)은 파이썬이 문자열 내에서 패턴을 찾는 방법을 알려주는 간결한 텍스트 설명입니다. 정규식은 코드베이스, 로그, 설정 파일, 웹 스크래핑 프로젝트에서 데이터 추출, 검증, 변환에 필수적입니다.

파이썬에서 re 모듈은 인터프리터에 내장되어 있으며, 패턴 컴파일, 검색, 치환을 위한 풍부한 API를 제공합니다. 사용자 입력 필터링, 로그 파싱, 웹사이트 콘텐츠 스크래핑 등 어떤 작업이든 정규식 기초를 탄탄히 익히면 시간을 절약하고 버그를 줄일 수 있습니다.

핵심 정규식 개념

자주 쓰는 식별자표

식별자설명공백특수 이스케이프
\d모든 숫자(0-9)\n., +, *, ?, [], $, ^, (, ), {}, |, \
\D숫자가 아닌 문자\s
\s공백, 탭, 줄바꿈 등\t
\S공백이 아닌 문자\e
\w영숫자 및 밑줄\r
\W영숫자가 아닌 문자(밑줄 제외)\f
.줄바꿈을 제외한 모든 문자—
\b단어 경계—
\.리터럴 마침표—
\{x}정확히 x번 발생—

re 모듈 시작하기

import re

re 모듈은 파이썬 표준 라이브러리 일부로 외부 의존성이 필요 없습니다. 주요 사용 사례:

예제 1: \w+와 ^

이를 이용해 문자열의 첫 단어를 캡처할 수 있습니다:

import re
sample = "guru99, education is fun"
result = re.findall(r"^\w+", sample)
print(result) # 출력: ['guru99']

+를 제거하면 첫 글자만 반환: ["g"].

예제 2: \s로 공백 기준 분할

re.split() 함수는 패턴이 일치하는 곳에서 문자열을 나눕니다. \s를 사용하면 모든 공백 문자에서 분할됩니다.

import re
text = "we are splitting the words"
print(re.split(r"\s", text)) # ['we', 'are', 'splitting', 'the', 'words']

백슬래시를 생략하면 s가 리터럴로 취급되어 모든 s 문자에서 분할됩니다.

정규식 메서드 개요

re.match() 사용

import re
text = "guru99 is a great platform"
match = re.match(r"^\w+", text)
print(match.group() if match else "No match") # 출력: guru99

re.search() 사용

import re
text = "Software Testing is fun"
for pattern in ["Software testing", "guru99"]:
    found = re.search(pattern, text, re.IGNORECASE)
    print(f"Looking for '{pattern}' in '{text}' - {'found a match!' if found else 'no match'}")

re.findall() 사용

import re
emails = "guru99@google.com, careerguru99@hotmail.com, users@yahoomail.com"
found = re.findall(r"[\w\.-]+@[\w\.-]+", emails)
for e in found:
    print(e)

정규식 플래그

플래그는 패턴 동작을 수정합니다. 주요 플래그:

플래그설명
re.M (re.MULTILINE)^와 $가 각 줄의 시작과 끝과 매치되게 함
re.I (re.IGNORECASE)대소문자 구분 무시
re.S (re.DOTALL)점이 줄바꿈과도 매치되게 함
re.U (re.UNICODE)유니코드 인식 문자 클래스 적용
re.L (re.LOCALE)클래스가 현재 로케일에 의존하게 함
re.X (re.VERBOSE)패턴에 공백과 주석 허용

멀티라인 예제

import re
text = """guru99
careerguru99
selenium"""
print(re.findall(r"^\w", text)) # ['g']
print(re.findall(r"^\w", text, re.MULTILINE)) # ['g', 'c', 's']

파이썬 2 호환성

위 예제는 모두 파이썬 3용으로 작성되었습니다. 파이썬 2에서 실행해야 한다면 print() 문을 파이썬 2 문법으로 바꾸고 re 모듈을 동일하게 임포트하면 됩니다.

핵심 정리

파이썬 정규식을 마스터하면 텍스트 처리를 위한 강력한 도구상자를 갖게 됩니다:

python

  1. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제
  2. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  3. Python format() 문자열 마스터하기: 명확한 예제로 완전 정복
  4. Python len() 함수: 객체 길이 측정 실전 가이드
  5. Python String.find() 메서드 마스터하기: 문법, 예제, 대안 비교
  6. 파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
  7. 파이썬 map() 함수 마스터하기: 문법, 예제, 모범 사례
  8. 파이썬 timeit()으로 실행 시간 측정하기: 실용 예제
  9. 파이썬 collections.Counter: 효율적 카운팅, 업데이트, 산술 연산
  10. 파이썬 list.count() 전문가 가이드: 실전 예제로 배우는 요소 개수 세기