파이썬의 정규표현식(re 모듈)에서 자주 쓰는
.group, .search, .compile, re.DOTALL 에 대해서 알아봅시다. 코드구현 때 자주 언급되니 미리 알아두면 좋습니다.
re.compile.search(), .match(), .findall() 등을 쓸 수 있습니다.import re
pattern = re.compile(r"\d{4}-\d{2}-\d{2}") # 날짜 패턴(예: 2024-06-01)
result = pattern.search("오늘은 2024-06-01 입니다.")
print(result.group(0)) # 결과: 2024-06-01
re.searchNone을 반환합니다.import re
result = re.search(r"cat", "A black cat is here.")
if result:
print(result.group(0)) # 결과: cat
.group.group(0)은 전체 매치,.group(1), .group(2) 등은 소괄호로 감싼 그룹에 해당하는 부분입니다.import re
result = re.search(r"(\d+):(\d+)", "시간 12:34")
if result:
print(result.group(0)) # 전체: 12:34
print(result.group(1)) # 첫 번째 그룹: 12
print(result.group(2)) # 두 번째 그룹: 34
re.DOTALL.(dot)이 줄바꿈 문자(\n)까지 포함해서 모든 문자와 매치되게 해주는 옵션입니다.re.findall, re.search 등에서 옵션으로 사용합니다.import re
text = "hello\nworld"
result1 = re.search(r"hello.world", text)
print(result1) # None (줄바꿈은 .에 매치 안 됨)
result2 = re.search(r"hello.world", text, re.DOTALL)
print(result2.group(0)) # hello\nworld (줄바꿈까지 매치됨)
re.compile(패턴): 정규표현식 패턴을 미리 컴파일해서 패턴 객체를 만듦re.search(패턴, 문자열): 문자열에서 패턴과 매치되는 첫 부분을 찾아 Match 객체로 반환.group(n): Match 객체에서 n번째 그룹(또는 전체 매치)을 꺼냄re.DOTALL: .이 줄바꿈까지 포함해서 모든 문자와 매치되게 하는 옵션