Я пытаюсь построить регулярное выражение для анализа наших системных журналов. Меня попросили отчитаться за каждый сервер, который использует сервис. Я написал простое регулярное выражение для извлечения полного доменного имени, но оно, похоже, потребляет слишком много строки ...
>>> string = "2010-12-13T00:00:02-05:00 <local3.info> suba1.suba2.example.com named[29959]: client 192.168.11.53#54608: query: subb1.subb2.example.com"
>>> regex = re.compile("\s.*?\.example\.com ")
>>> r = regex.search(string)
>>> r
<_sre.SRE_Match object at 0x896dae0bbf9e6bf0>
# Run findall
>>> regex.findall(string)
[u' <local3.info> suba1.suba2.example.com ', u' client 192.168.11.53#54608: query: subb1.subb2.example.com ']
Как вы можете видеть, findall с. * Слишком общий, и регулярное выражение в конечном итоге потребляет много.