[왕초보]파이썬 정규표현식 질문 입니다.

답변 대기중
30 XP

안녕하세요. 일단 저는 파이썬에 대해 많이 모릅니다..
현재 특정 프로그램의 라이선스 사용량을 출력하는 파이썬 코드를 작성 하고 있습니다.
외부 텍스트 파일을 참조하여 특정 문자열을 찾아서 출력하는 방법인데, 정규 표현식을 사용하는데, 너무 헷갈리고 머리가 아픕니다.
저는 결과 값이 아래처럼 나오길 원하는데, LEE01만 출력이 됩니다. 이유가 뭘까요.?
제발 좀 도와주세요. 부탁드립니다.

[원하는 결과 값]
현재 라이선스 사용량: 2
Host name: LEE01 Status: Running since Thu Apr 27 13:42:16 2023
Host name: LEE02 Status: Running since Thu Apr 27 10:53:44 2023

[외부 텍스트 파일 내용]
|- Feature name : "AllowTQA"
|- Feature version : "2019"
|- Unreserved tokens in use : 0
|- Feature name : "WorkgroupEdition"
|- Feature version : "2017"
|- Unreserved tokens in use : 2
|- Host name : LEE01
|- Status : Running since Thu Apr 27 13:42:16 2023
|- Host name : LEE02
|- Status : Running since Thu Apr 27 13:01:44 2023
|- Feature name : "WorkgroupEdition"
|- Feature version : "2019"
|- Unreserved tokens in use : 0

[코드]
sourceName = 'tmp.tmp'
filename = 'output.html'

with open(sourceName, "r") as sourceFile:
content = sourceFile.read()
import re
with open(sourceName, "r") as file:
content = file.read()
pattern = re.compile(
r'Feature name\s+:\s+"WorkgroupEdition".?Unreserved tokens in use\s+:\s+(\d).?Host name\s*:\s+(\w+).?Status\s:\s+([^\n]+)',
re.DOTALL | re.MULTILINE
)
matches = pattern.findall(content)
#unique_matches = set(matches) # 중복 제거
for match in matches:
unreserved_tokens = match[0]
host_name = match[1]
status = match[2]
print(f"현재 라이선스 사용량: {unreserved_tokens}")
print("----------------------------------------------------------------")
print(f"Host name: {host_name} Status: {status}")


불러오는 중...