파이썬 정규 표현식을 쉽게 만들기

정규 표현식(regex)은 패턴에 따라 문자열을 일치시키고 조작하는 데 사용되는 강력한 도구입니다. Python에서 re 모듈은 정규 표현식을 지원하여 복잡한 문자열 작업을 효율적으로 수행할 수 있도록 합니다. 이 문서에서는 정규 표현식의 기본 사항을 소개하고 Python에서 효과적으로 사용하는 방법을 보여줍니다.

re 모듈 시작하기

파이썬에서 정규 표현식을 사용하려면 re 모듈을 가져와야 합니다. 이 모듈은 정규 표현식 패턴으로 작업하기 위한 여러 함수를 제공합니다.

  • re.match() - 문자열의 시작부분에서만 일치 여부를 확인합니다.
  • re.search() - 전체 문자열에서 일치 항목을 검색합니다.
  • re.findall() - 문자열에서 모든 일치 항목을 찾아 목록으로 반환합니다.
  • re.sub() - 문자열에서 일치 항목을 지정된 대체 항목으로 대체합니다.

기본 패턴 매칭

정규 표현식은 특수 문자를 사용하여 검색 패턴을 정의합니다. 다음은 몇 가지 기본 패턴입니다.

  • . - 줄바꿈을 제외한 모든 단일 문자와 일치합니다.
  • \d - 모든 숫자와 일치합니다([0-9]와 동일).
  • \w - 모든 영숫자 문자와 일치합니다([a-zA-Z0-9_]와 동일).
  • \s ​​- 모든 공백 문자와 일치합니다.
  • ^ - 문자열의 시작과 일치합니다.
  • $ - 문자열의 끝과 일치합니다.

예시

다음은 기본 패턴 매칭을 보여주는 몇 가지 예입니다.

import re

# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group())  # Output: Hello

# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group())  # Output: 24

그룹에 정규 표현식 사용

그룹은 일치하는 텍스트의 일부를 캡처하는 데 사용됩니다. 괄호를 사용하여 정의됩니다. 예를 들어, 패턴의 특정 부분을 추출하려면 그룹을 사용할 수 있습니다.

pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'

# Find all matches with groups
match = re.search(pattern, text)
if match:
    print(f'Area Code: {match.group(1)}')  # Output: 123
    print(f'Prefix: {match.group(2)}')     # Output: 45
    print(f'Suffix: {match.group(3)}')     # Output: 6789

특수 문자 사용

정규 표현식에는 보다 복잡한 패턴 일치를 위해 여러 특수 문자가 포함됩니다.

  • * - 이전 요소가 0번 이상 나타나는 경우와 일치합니다.
  • + - 이전 요소가 1번 이상 나타나는 경우와 일치합니다.
  • ? - 이전 요소가 0개 또는 1개 나타나는 경우와 일치합니다.
  • {n} - 이전 요소의 n번의 발생과 정확히 일치합니다.
  • | - 앞의 패턴이나 뒤의 패턴과 일치합니다.

예시

특수문자를 사용한 몇 가지 예는 다음과 같습니다.

# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result)  # Output: ['123', '', '', '456']

# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result)  # Output: ['24', '3']

정규 표현식으로 텍스트 바꾸기

re.sub() 함수는 패턴과 일치하는 문자열의 일부를 바꾸는 데 사용됩니다.

text = 'The rain in Spain falls mainly in the plain.'

# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text)  # Output: The rain in France falls mainly in the plain.

결론

정규 표현식은 파이썬에서 패턴 매칭과 텍스트 조작을 위한 강력한 도구입니다. re 모듈을 사용하면 복잡한 패턴을 기반으로 텍스트를 검색, 매칭 및 바꿀 수 있습니다. 기본 구문과 특수 문자를 이해하면 정규 표현식을 활용하여 광범위한 텍스트 처리 작업을 효과적으로 처리할 수 있습니다.