[파이썬] 정규 표현식 패턴 구성 요소

정규 표현식은 문자열 패턴을 찾거나 매칭하기 위해 사용되는 강력한 도구입니다. Python에서는 re 모듈을 통해 정규 표현식을 지원하며, 다양한 패턴을 구성하는 요소들을 제공합니다.

1. 리터럴(Literal)

리터럴은 일반 문자로 표현되는 정규 표현식입니다. 예를 들어, 패턴 cat은 문자열에서 “cat”을 정확히 찾습니다.

import re

pattern = "cat"
text = "I have a cat"
result = re.search(pattern, text)

print(result.group())  # Output: cat

2. 메타 문자(Meta Characters)

메타 문자는 특별한 의미를 가지는 문자로서, 특정 패턴을 나타낼 때 사용됩니다. 아래는 자주 사용되는 메타 문자들의 예시입니다.

import re

pattern = "c.t"
text = "I have a cat and a hat"
result = re.search(pattern, text)

print(result.group())  # Output: cat

3. 문자 클래스(Character Classes)

문자 클래스는 특정 범위에 속하는 문자를 나타내기 위해 사용됩니다. 대괄호 [ ] 안에 문자 혹은 범위를 지정하여 표현할 수 있습니다.

import re

pattern = "[cph]at"
text = "I have a cat, a hat, and a pat"
result = re.findall(pattern, text)

print(result)  # Output: ['cat', 'hat', 'pat']

4. 반복자(Quantifiers)

반복자는 패턴 내부의 문자나 그룹이 나타날 수 있는 횟수를 나타냅니다.

import re

pattern = "ca{2,3}t"
text = "I have a cat, a caat, and a caaat"
result = re.findall(pattern, text)

print(result)  # Output: ['caat', 'caaat']

5. 그룹(Group)

그룹은 패턴 내부의 일부분을 그룹화하여 묶기 위해 사용됩니다. 괄호 ()를 사용하여 그룹을 만들 수 있습니다.

import re

pattern = "([A-Za-z]+) (\d+)"
text = "I have 10 apples and 5 bananas"
result = re.findall(pattern, text)

print(result)  # Output: [('have', '10'), ('apples', '5')]

이외에도 Python에서는 다양한 정규 표현식 패턴 구성 요소를 제공하고 있으며, 각각의 요소를 조합하여 복잡한 패턴을 구성할 수 있습니다. 정규 표현식은 문자열 처리와 패턴 매칭에 유용한 도구이므로, Python 프로그래밍에서 활용할 수 있습니다.