점(.
)은 정규 표현식에서 매우 유용한 메타 문자입니다. 점은 어떤 문자에도 일치하며, 줄바꿈 문자를 제외한 모든 문자에 일치합니다. 이것은 다양한 용도로 사용될 수 있습니다. 이번 포스트에서는 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") # 일치하지 않음
결론
점 메타 문자는 정규 표현식에서 문자열 일치에 매우 유용한 기능을 제공합니다. 이 포스트에서는 문자열 일치, 반복 수량자, 이스케이프 문자, 그리고 문자 클래스와 함께 점 메타 문자를 활용하는 방법을 살펴보았습니다. 이러한 기능을 잘 이용하면 정규 표현식을 보다 강력하게 활용할 수 있습니다.