[파이썬] 파일의 특정 문자열 정규식

정규식(Regular Expression)은 문자열을 처리하는 강력한 도구입니다. 정규식은 주어진 패턴에 맞는 문자열을 찾거나, 특정 문자열을 변경하는 등의 작업에 사용됩니다. 이번 블로그 포스트에서는 파일에서 특정 문자열을 찾기 위해 정규식을 사용하는 방법에 대해 알아보겠습니다.

1. 모듈 임포트

Python에서 정규식을 사용하기 위해서는 re 모듈을 임포트해야 합니다. 아래와 같은 코드를 통해 모듈을 임포트할 수 있습니다.

import re

2. 파일 읽기

먼저, 특정 문자열을 찾을 파일을 열어야 합니다. 아래와 같은 코드를 사용하여 파일을 열고 내용을 읽을 수 있습니다.

with open('파일경로', 'r') as file:
    content = file.read()

3. 정규식 패턴 작성

파일에서 찾고자 하는 특정 문자열을 정규식 패턴으로 작성해야 합니다. 정규식 패턴은 다양한 문자열 조합을 지원하며, 필요에 따라 커스터마이징할 수 있습니다. 예를 들어, 문자열의 시작과 끝을 나타내는 ^$, 특정 문자 또는 패턴을 나타내는 [], 반복을 나타내는 *, +, ? 등의 메타 문자들을 사용할 수 있습니다.

pattern = r'정규식패턴'

4. 정규식 적용

이제 파일의 내용과 정규식 패턴을 비교하여 특정 문자열을 찾을 수 있습니다. re 모듈의 search() 함수나 findall() 함수를 사용하여 검색 결과를 반환받을 수 있습니다.

result = re.search(pattern, content)
# or
result = re.findall(pattern, content)

5. 결과 확인

마지막으로, 찾은 결과를 확인할 수 있습니다. search() 함수로 찾은 결과는 group() 메서드를 통해 가져올 수 있습니다. findall() 함수로 찾은 결과는 리스트 형태로 반환됩니다.

if result:
    match = result.group()
    print(f"찾은 문자열: {match}")
else:
    print("일치하는 문자열이 없습니다.")

위의 코드에서는 search() 함수를 사용한 예시를 보여주었지만, findall() 함수를 사용하여 모든 일치하는 문자열을 한 번에 가져올 수도 있습니다.

예시

다음은 sample.txt 파일에서 정규식을 사용하여 “Hello, World!”라는 문자열을 찾는 예시입니다.

import re

# 파일 읽기
with open('sample.txt', 'r') as file:
    content = file.read()

# 정규식 패턴 작성
pattern = r'Hello, World!'

# 정규식 적용
result = re.search(pattern, content)

# 결과 확인
if result:
    match = result.group()
    print(f"찾은 문자열: {match}")
else:
    print("일치하는 문자열이 없습니다.")

이 예시를 실행하면, 파일에서 “Hello, World!” 문자열을 찾아 출력합니다.

마무리

파일에서 특정 문자열을 찾기 위해 정규식을 사용하는 방법에 대해 알아보았습니다. 정규식은 문자열 처리에 강력한 도구로 활용될 수 있으며, 상황에 맞게 유연하게 패턴을 작성할 수 있습니다. 이를 활용하여 다양한 파일 처리 작업을 수행할 수 있습니다. 추가적으로 정규식에 대해 더 자세히 알아보고 싶다면 공식 Python 문서를 참고하시기 바랍니다.

Happy coding!