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

정규 표현식(regular expression)은 문자열 패턴을 표현하고 검색하는 데 사용되는 강력한 도구입니다. Python에서는 re 모듈을 통해 정규 표현식을 지원하며, 매칭된 결과를 검색하거나 원하는 문자열을 추출하는 작업을 수행할 수 있습니다.

이번 글에서는 Python에서 정규 표현식의 매칭 결과 문자열을 검색하는 방법에 대해 알아보겠습니다.

1. re 모듈 임포트하기

먼저, 정규 표현식을 사용하기 위해 re 모듈을 임포트해야 합니다. 다음과 같이 코드를 작성하여 re 모듈을 임포트할 수 있습니다.

import re

2. 정규 표현식 패턴을 통해 문자열 매칭하기

다음 단계는 정규 표현식 패턴을 통해 문자열을 매칭하는 것입니다. re 모듈의 search() 함수를 사용하여 매칭을 수행할 수 있습니다. 이 함수는 첫 번째로 매칭된 결과만 반환합니다.

예를 들어, 문자열 “Hello, World!”에서 “Hello”를 매칭하는 정규 표현식 패턴은 다음과 같습니다.

pattern = r"Hello"
result = re.search(pattern, "Hello, World!")
print(result.group())

위 코드의 출력은 “Hello”가 될 것입니다.

3. 매칭된 결과의 문자열 검색하기

re.search() 함수는 매칭된 결과를 반환하는데, 이 결과는 Match 객체로 표현됩니다. 매칭된 문자열을 검색하기 위해 Match 객체의 group() 메서드를 사용할 수 있습니다.

예를 들어, “Hello, World!” 문자열에서 “World”를 매칭하는 코드는 다음과 같습니다.

pattern = r"World"
result = re.search(pattern, "Hello, World!")
print(result.group())

위 코드의 출력은 “World”가 될 것입니다.

4. 매칭된 결과의 위치 검색하기

인덱스를 활용하여 매칭된 결과의 위치를 검색할 수도 있습니다. Match 객체의 start()end() 메서드를 사용하여 매칭된 결과의 시작과 끝 인덱스를 반환할 수 있습니다.

예를 들어, “Hello, World!” 문자열에서 “World”의 시작과 끝 인덱스를 검색하는 코드는 다음과 같습니다.

pattern = r"World"
result = re.search(pattern, "Hello, World!")
print(result.start())   # 7
print(result.end())     # 12

위 코드의 출력은 각각 7과 12가 될 것입니다.

5. 모든 매칭 결과 검색하기

re 모듈의 findall() 함수를 사용하면 매칭 결과의 리스트를 반환할 수 있습니다. 이 함수를 사용하면 매칭된 모든 문자열을 검색할 수 있습니다.

예를 들어, “Hello, World!” 문자열에서 모든 “o”를 매칭하는 코드는 다음과 같습니다.

pattern = r"o"
result = re.findall(pattern, "Hello, World!")
print(result)   # ['o', 'o']

위 코드의 출력은 [‘o’, ‘o’]가 될 것입니다.

마치며

Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과 문자열을 검색하는 방법에 대해 알아보았습니다. 이를 통해 원하는 패턴을 찾거나, 매칭 결과를 검색하고 처리하는 일에 도움이 될 것입니다. 정규 표현식은 복잡한 패턴을 표현할 수 있는 강력한 도구이므로, 문제 해결에 유용하게 활용해보세요.