다음과 같은 텍스트가있는 로그 파일이 있습니다.
Jul 1 03:27:12 syslog: [m_java][ 1/Jul/2013 03:27:12.818][j:[SessionThread <]^Iat com/avc/abc/magr/service/find.something(abc/1235/locator/abc;Ljava/lang/String;)Labc/abc/abcd/abcd;(bytecode:7)
파일에는 두 가지 시간 형식이 있습니다. []로 묶인 날짜 시간 형식을 기준으로이 로그 파일을 정렬해야합니다.
이것은 내가 사용하려는 정규식입니다. 그러나 아무것도 반환하지 않습니다.
t_pat = re.compile(r".*\[\d+/\D+/.*\]")
파일의 각 줄을 살펴보고이 패턴을 적용하고 날짜와 시간을 기준으로 줄을 정렬 할 수 있습니다.
누군가 나를 도울 수 있습니까? 감사!
초기 공간과 일치하지 않습니다. 또한 쉽게 추출 할 수 있도록 날짜를 그룹화하고 \D
및 .*
패턴을 탐욕스럽지 않은 것으로 제한 하려고합니다.
t_pat = re.compile(r".*\[\s?(\d+/\D+?/.*?)\]")
데모:
>>> re.compile(r".*\[\s?(\d+/\D+?/.*?)\]").search(line).group(1)
'1/Jul/2013 03:27:12.818'
패턴을 좀 더 좁힐 수 있습니다. 예를 들어, 한 달에 3 개의 문자 만 일치하면됩니다.
t_pat = re.compile(r".*\[\s?(\d{1,2}/[A-Z][a-z]{2}/\d{4} \d{2}:\d{2}:[\d.]{2,})\]")
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다