2016-07-13 2 views
-3

내가 예를 들어 로그를 정렬하는 방법을 알아 내려고 노력하고있어 ...정규식을 사용하여 로그를 정렬 하시겠습니까?

  1. 사용자 : 테스트
  2. 레벨 : 사용자
  3. 도메인 : 로컬 호스트
  4. 시간 : 정오
  5. ㅋ : 정보
  6. 날짜 : 2016년 7월 12일
  7. IP : 127.0.0.1

출력 텍스트를 탭 공간으로 지정하고 싶습니다.

사용자 : 레벨 : 도메인 : 시간 : ㅋ : 날짜 : IP

+3

어떤 것을 정렬 하시겠습니까? 임의의 필드를 정렬하는 방법을 묻는 중입니까? 어떤 언어로? 이 질문은 정규식과 어떤 관련이 있습니까? –

답변

0

내가 당신의 질문은 바로, 당신은 정렬에 대해없는 이야기지만, 구문 분석에 대해하고 얻을합니다. 다른 형식으로 변환 할 로그 문자열이 있습니다. 로그 문자열과 일치하는 정규 표현식은 많은 그룹이 때문에, 여기 출력은

입니다

import re 
logString = "User:Level:Domain:Time:Blah:Date:IP" 
logGroups = ["User", "Level", "Domain", "Time", "Blah", "Date", "IP"] 
reLogGroups = "(?P<"+">[^:]+):(?P<".join(logGroups)+">[^:]+)" 
matchLogGroups = re.search(reLogGroups,logString) 
if matchLogGroups: 
    counter = 1 
    for logGroup in logGroups: 
     print(str(counter)+". " + logGroup + ": " + matchLogGroups.group(logGroup) + "\n") 
     counter += 1 

파이썬 예제가 훨씬 더 효율적으로 할 수있다, 그러나

(?P<User>[^:]+):(?P<Level>[^:]+):(?P<Domain>[^:]+):(?P<Time>[^:]+):(?P<Blah>[^:]+):(?P<Date>[^:]+):(?P<IP>[^:]+) 

1. User: User 

2. Level: Level 

3. Domain: Domain 

4. Time: Time 

5. Blah: Blah 

6. Date: Date 

7. IP: IP 
관련 문제