본문 바로가기

언어/Python

[ Python ] re.sub()를 사용해서 텍스트 교체하기

반응형

re.sub 함수는 파이썬의 re 모듈에서 제공하는 함수 중 하나로, 정규 표현식과 일치하는 문자열을 다른 문자열로 교체하는 데 사용됩니다. 이 함수는 일치하는 모든 부분을 한 번에 교체하며, 매우 강력한 문자열 조작 도구입니다.

1. re.sub 함수의 사용법

import re

result = re.sub(pattern, repl, string, count=0, flags=0)
  • pattern: 정규 표현식 패턴입니다.
  • repl: 교체할 문자열입니다.
  • string: 검색할 문자열입니다.
  • count: 선택적 인수로, 교체할 최대 횟수를 지정합니다. 기본값은 0이며, 이는 모든 일치 항목을 교체하는 것을 의미합니다.
  • flags: 선택적 인수로, 정규 표현식의 동작을 수정하는 플래그입니다.

2. 기본 예제

import re

# 예제 문자열
text = "Hello, world! Hello, universe!"

# 정규 표현식 패턴
pattern = r"Hello"

# 교체할 문자열
replacement = "Hi"

# re.sub를 사용하여 문자열 교체
result = re.sub(pattern, replacement, text)

print(result)

출력:

Hi, world! Hi, universe!

3. 대소문자 무시 예제

import re

# 예제 문자열
text = "Hello, world! hello, universe!"

# 정규 표현식 패턴
pattern = r"hello"

# 교체할 문자열
replacement = "Hi"

# re.sub를 사용하여 문자열 교체 (대소문자 무시)
result = re.sub(pattern, replacement, text, flags=re.IGNORECASE)

print(result)

출력:

Hi, world! Hi, universe!

4. 그룹을 사용한 교체 예제

import re

# 예제 문자열
text = "My email is example@test.com"

# 정규 표현식 패턴 (그룹화 포함)
pattern = r"(\w+)@(\w+)\.(\w+)"

# 교체할 문자열 (도메인 부분을 익명화)
replacement = r"\1@hidden.\3"

# re.sub를 사용하여 문자열 교체
result = re.sub(pattern, replacement, text)

print(result)

출력:

My email is example@hidden.com

5. 숫자 형식 변환 예제

import re

# 예제 문자열
text = "My phone number is 123-456-7890."

# 정규 표현식 패턴
pattern = r"(\d{3})-(\d{3})-(\d{4})"

# 교체할 문자열 (다른 형식으로 변환)
replacement = r"(\1) \2-\3"

# re.sub를 사용하여 문자열 교체
result = re.sub(pattern, replacement, text)

print(result)

출력:

My phone number is (123) 456-7890.

6. 텍스트에서 HTML 태그 제거 예제

import re

# 예제 문자열 (HTML 포함)
text = "<p>This is a paragraph.</p><a href='#'>This is a link.</a>"

# 정규 표현식 패턴 (HTML 태그)
pattern = r"<.*?>"

# 교체할 문자열 (빈 문자열)
replacement = ""

# re.sub를 사용하여 HTML 태그 제거
result = re.sub(pattern, replacement, text)

print(result)

출력:

This is a paragraph.This is a link.

7. 최대 교체 횟수 제한 예제

import re

# 예제 문자열
text = "apple orange apple banana apple"

# 정규 표현식 패턴
pattern = r"apple"

# 교체할 문자열
replacement = "fruit"

# re.sub를 사용하여 문자열 교체 (최대 2번만 교체)
result = re.sub(pattern, replacement, text, count=2)

print(result)

출력:

fruit orange fruit banana apple

8. 요약

  • re.sub 함수는 정규 표현식 패턴과 일치하는 문자열을 다른 문자열로 교체하는 데 사용됩니다.
  • re.sub(pattern, repl, string, count=0, flags=0) 형식으로 사용됩니다.
  • 다양한 플래그를 사용하여 대소문자를 무시하거나 다른 옵션을 설정할 수 있습니다.
  • 그룹을 사용하여 부분 문자열을 참조하여 교체할 수 있습니다.
  • 교체 횟수를 제한할 수 있습니다.

이 예제들을 통해 re.sub 함수를 사용하여 문자열을 다양한 방식으로 교체하는 방법을 이해할 수 있습니다.

반응형