[파이썬] 정규 표현식의 매칭 결과 문자열 검색

정규 표현식은 문자열 패턴 매칭과 검색에 사용되는 강력한 도구입니다. 파이썬은 re 모듈을 통해 정규 표현식을 지원하며, 매우 다양한 문자열 검색 작업을 수행할 수 있습니다. 이번 블로그 포스트에서는 파이썬에서 정규 표현식 매칭 결과를 검색하는 방법을 알아보겠습니다.

re 모듈 소개

파이썬에서 정규 표현식을 사용하기 위해 re 모듈을 import 해야 합니다. 다음은 re 모듈을 import 하는 예제입니다.

import re

문자열 매칭 결과 찾기

정규 표현식의 가장 기본적인 사용법은 문자열 내에서 특정 패턴을 검색하는 것입니다. re 모듈의 search() 함수를 사용하여 매칭된 결과를 찾을 수 있습니다. 다음은 예제 코드입니다.

import re

# 정규 표현식 패턴
pattern = r"\bapple\b"

# 검색 대상 문자열
text = "I have an apple, but I don't have any applesauce."

# 검색 시도
match = re.search(pattern, text)

# 매칭 결과 출력
if match:
    print("매칭된 결과:", match.group())  # "apple"
else:
    print("매칭된 결과 없음")

위의 코드에서는 r"\bapple\b" 정규 표현식 패턴을 사용하여 text 문자열 내에서 “apple” 단어를 검색합니다. re.search() 함수를 호출하고 매칭 결과를 match 변수에 저장합니다. match.group() 메서드를 통해 실제 매칭된 문자열인 “apple”을 출력합니다.

전역 매칭 결과 찾기

위의 예제에서는 re.search() 함수를 통해 첫 번째 매칭 결과를 찾았습니다. 하지만, 문자열 내에서 모든 매칭 결과를 찾아야 할 때도 있습니다. 이를 위해 re 모듈의 findall() 함수를 사용할 수 있습니다. 다음은 전역 매칭 결과를 찾는 예제 코드입니다.

import re

# 정규 표현식 패턴
pattern = r"\bapple\b"

# 검색 대상 문자열
text = "I have an apple, but I don't have any applesauce."

# 전역 매칭 결과 찾기
matches = re.findall(pattern, text)

# 매칭 결과 출력
if matches:
    print("매칭된 결과:", matches)  # ["apple"]
else:
    print("매칭된 결과 없음")

re.findall() 함수를 사용하여 text 문자열 내에서 “apple” 패턴의 모든 매칭 결과를 찾습니다. matches 변수에 매칭 결과가 리스트 형태로 저장됩니다. 이후, matches 리스트를 출력하여 모든 매칭 결과를 확인할 수 있습니다.

대소문자 구분하지 않는 매칭 결과 찾기

정규 표현식을 사용하여 대소문자를 구분하지 않고 매칭 결과를 검색해야 할 경우가 있습니다. 이를 위해 re 모듈의 IGNORECASE 플래그를 사용할 수 있습니다. 다음은 대소문자 구분 없이 매칭 결과를 찾는 예제 코드입니다.

import re

# 정규 표현식 패턴
pattern = r"\bapple\b"

# 검색 대상 문자열
text = "I have an Apple, but I don't have any Applesauce."

# 대소문자 구분 없이 매칭 결과 찾기
matches = re.findall(pattern, text, flags=re.IGNORECASE)

# 매칭 결과 출력
if matches:
    print("매칭된 결과:", matches)  # ["Apple"]
else:
    print("매칭된 결과 없음")

위의 예제 코드에서는 re.IGNORECASE 플래그를 re.findall() 함수의 flags 매개변수로 전달하여 대소문자를 구분하지 않고 매칭 결과를 찾습니다. 검색 대상 문자열에 대소문자 “Apple”이 있으므로, 매칭 결과로 [“Apple”]이 출력됩니다.

정규 표현식을 사용하여 문자열을 검색하는데는 더 많은 기능과 옵션이 있습니다. re 모듈의 다른 함수들과 플래그 등을 이용하여 다양한 문자열 검색 작업을 수행할 수 있습니다. 파이썬 공식 문서와 다른 참고 자료들을 참고하여 더 많이 배워보세요!