[파이썬] 점(.) 메타 문자의 활용

점(.)은 정규 표현식에서 매우 유용한 메타 문자입니다. 점은 어떤 문자에도 일치하며, 줄바꿈 문자를 제외한 모든 문자에 일치합니다. 이것은 다양한 용도로 사용될 수 있습니다. 이번 포스트에서는 Python에서 점 메타 문자의 활용에 대해 알아보겠습니다.

1. 점 메타 문자를 이용한 문자열 일치

정규 표현식 패턴 안에서 점 메타 문자를 사용하면 어떤 한 문자와 일치하는지를 나타낼 수 있습니다. 예를 들어, a.b 패턴은 “aab”, “abb”, “acb”와 일치하지만, “ab”, “aaab”와는 일치하지 않습니다.

import re

pattern = r"a.b"

match1 = re.match(pattern, "aab")  # 일치
match2 = re.match(pattern, "abb")  # 일치
match3 = re.match(pattern, "acb")  # 일치
match4 = re.match(pattern, "ab")   # 일치하지 않음
match5 = re.match(pattern, "aaab")  # 일치하지 않음

2. 점 메타 문자와 함께 반복 수량자 사용

점 메타 문자는 반복 수량자와 함께 사용될 때 매우 유용합니다. 반복 수량자는 일치해야하는 문자의 수를 지정하는 데 사용됩니다. 예를 들어, a.*b 패턴은 “ab”, “a123b”, “axyzcb”와 일치하지만, “acb”와는 일치하지 않습니다.

import re

pattern = r"a.*b"

match1 = re.match(pattern, "ab")       # 일치
match2 = re.match(pattern, "a123b")    # 일치
match3 = re.match(pattern, "axyzcb")   # 일치
match4 = re.match(pattern, "acb")      # 일치하지 않음

3. 점 메타 문자와 함께 이스케이프 문자 사용

점 메타 문자는 문자 하나와 일치하며, 실제로 점 자체를 찾고 싶을 때는 이스케이프 문자인 역슬래시(\)를 사용해야 합니다. 예를 들어, \. 패턴은 단순히 점 자체와 일치합니다.

import re

pattern = r"\."

match1 = re.match(pattern, ".")  # 일치
match2 = re.match(pattern, "a")  # 일치하지 않음

4. 점 메타 문자와 같은 문자 클래스 사용

점 메타 문자는 문자 그 자체와 일치하지만, 문자 클래스 안에 점을 넣으면 어떤 문자에도 일치하지 않는 패턴이 됩니다. 예를 들어, [.] 패턴은 점과 일치하지만, 어떤 다른 문자와도 일치하지 않습니다.

import re

pattern = r"[.]"

match1 = re.match(pattern, ".")  # 일치
match2 = re.match(pattern, "a")  # 일치하지 않음
match3 = re.match(pattern, "1")  # 일치하지 않음

결론

점 메타 문자는 정규 표현식에서 문자열 일치에 매우 유용한 기능을 제공합니다. 이 포스트에서는 문자열 일치, 반복 수량자, 이스케이프 문자, 그리고 문자 클래스와 함께 점 메타 문자를 활용하는 방법을 살펴보았습니다. 이러한 기능을 잘 이용하면 정규 표현식을 보다 강력하게 활용할 수 있습니다.