0Pricing
Python Academy · 강의

re.sub, 플래그 및 컴파일된 패턴

텍스트를 바꾸고 IGNORECASE 같은 플래그를 사용하며 재사용할 패턴을 컴파일합니다.

re.sub, 플래그 및 컴파일된 패턴은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

소개

re.sub는 일치하는 부분을 대체합니다. 플래그는 일치 동작을 변경합니다. 컴파일된 패턴은 반복해서 사용할 때 효율적입니다.

re.sub 기초

re.sub(pattern, repl, string)은 모든 일치 부분을 repl로 대체합니다. 네 번째 인수 count=는 대체 횟수를 제한합니다.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

그룹과 함께 re.sub 사용하기

대체 문자열에 \1, \2 또는 \g<1>을 사용하여 캡처한 그룹을 삽입하십시오. 이름이 지정된 그룹에는 \g을 사용합니다.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

함수와 함께 re.sub 사용하기

대체 값은 호출 가능한 객체일 수 있습니다. f(match) → 대체 문자열과 같은 형태입니다. 이를 사용하면 복잡한 변환을 수행할 수 있습니다.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

패턴에서 대소문자를 구분하지 않도록 합니다. re.I를 사용한 r'hello'는 'HELLO', 'Hello' 등과 일치합니다.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

^와 $가 전체 문자열이 아니라 각 LINE의 시작과 끝에 일치하도록 합니다.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

.이 줄바꿈과도 일치하도록 합니다. 이 플래그가 없으면 .은 줄 경계에서 멈춥니다.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

가독성을 위해 패턴 안에서 주석과 공백을 사용할 수 있게 합니다. 공백은 무시되며, 리터럴 공백에는 \ + space를 사용합니다.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

플래그 결합하기

|를 사용하여 플래그를 결합하십시오. 예: re.I | re.M. 또는 패턴 시작 부분에서 인라인 플래그 (?im)을 사용하십시오.
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

성능을 위한 re.compile

re.compile()로 패턴을 한 번 컴파일하십시오. 컴파일된 객체의 메서드를 호출할 수 있습니다: pat.search(), pat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

re.escape(string)는 문자열의 모든 특수 정규 표현식 문자를 이스케이프하므로 리터럴 패턴으로 사용할 수 있습니다.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

빠른 확인

Python 정규 표현식에서 .이 줄바꿈과 일치하도록 만드는 플래그는 무엇인가요?

복습

re.sub: 문자열, 그룹 또는 함수로 대체합니다. 플래그: re.I (대소문자), re.M (여러 줄의 ^/$), re.S (점이 \n과 일치), re.X (상세 모드). 재사용하려면 컴파일하십시오.

계속 진행하기

잘하셨습니다! 다음 수업이 기다리고 있습니다.

자주 묻는 질문

“re.sub, 플래그 및 컴파일된 패턴” 강의는 무료인가요?

네 — “re.sub, 플래그 및 컴파일된 패턴” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“re.sub, 플래그 및 컴파일된 패턴”에서 뭘 배우나요?

텍스트를 바꾸고 IGNORECASE 같은 플래그를 사용하며 재사용할 패턴을 컴파일합니다. 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“re.sub, 플래그 및 컴파일된 패턴” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. 정규 표현식 기초
  2. re.match, re.search, re.findall 사용하기
  3. 그룹과 이름 있는 캡처
  4. re.sub, 플래그 및 컴파일된 패턴
← Python Academy(으)로 돌아가기