[파이썬] 문자열의 정규식 매칭 반복

정규식(regular expression)은 특정한 패턴을 가진 문자열을 찾기 위해 사용되는 강력한 도구입니다. Python에는 정규식을 다룰 수 있는 re 모듈이 기본적으로 내장되어 있습니다. 이번 포스트에서는 Python에서 문자열의 정규식 매칭을 반복하는 방법을 살펴보겠습니다.

패턴 매칭하기

Python의 re 모듈을 사용하여 문자열에서 정규식 패턴을 매칭할 수 있습니다. 아래는 간단한 예제 코드입니다.

import re

text = "Hello, World! This is a test string."
pattern = r"test"

result = re.findall(pattern, text)
print(result)  # ["test"]

위의 예제 코드에서는 re.findall(pattern, text) 메서드를 사용하여 정규식 패턴 pattern을 문자열 text에서 찾았습니다. 결과로 매칭된 모든 부분 문자열이 리스트로 반환됩니다.

매칭된 패턴 반복하기

정규식 패턴을 사용하여 매칭된 부분 문자열을 반복적으로 찾고 싶을 때는 re.finditer(pattern, text) 메서드를 사용할 수 있습니다. 아래는 이를 사용한 예제 코드입니다.

import re

text = "Python is a popular programming language. I love Python!"
pattern = r"Python"

for match in re.finditer(pattern, text):
    print("Match found:", match.start(), "-", match.end())

위의 예제 코드에서는 re.finditer(pattern, text) 메서드를 사용하여 정규식 패턴 pattern을 문자열 text에서 찾았습니다. 이번에는 매칭된 패턴의 시작과 끝 인덱스를 출력했습니다. 결과는 다음과 같습니다.

Match found: 0 - 6
Match found: 32 - 38

대소문자 구분 없이 매칭하기

정규식 패턴을 대소문자 구분 없이 매칭하고 싶다면 re.IGNORECASE 옵션을 사용할 수 있습니다. 아래는 이를 사용한 예제 코드입니다.

import re

text = "Hello, hello, HELLO!"
pattern = r"hello"
flags = re.IGNORECASE

result = re.findall(pattern, text, flags)
print(result)  # ["Hello", "hello", "HELLO"]

위의 예제 코드에서는 re.findall(pattern, text, flags) 메서드에 flags 매개변수로 re.IGNORECASE 값을 전달하여 대소문자를 구분하지 않고 패턴을 찾도록 했습니다.

이제 Python에서 문자열의 정규식 매칭을 반복하는 방법을 알아보았습니다. 정규식은 문자열 처리에서 매우 유용한 도구이며, 다양한 작업에 활용할 수 있습니다. 적극적으로 활용하여 보다 효율적인 문자열 처리를 해보세요!