2011-09-13 2 views
0

가능한 중복 :도움 정규식 작성해야

 Using data from (yyyy/mm/dd): 2011/8/3 
     0 files queued for scanning. 
     Warning: E:\test\foo 
     Händler.pdf File not Found. 
     Loading com, please wait. 
     1520 file scanned. 

내가를 감지하는 정규식을 작성하려면 다음과 같이
help need to write regex

나는 로그 파일 포맷 한 경고 메시지 및 사용 날짜 내 출력은 과 같습니다. { '사용 날짜': '2011년 8월 3일', '경고': 'E : 찾을 수 없음 \ 테스트 \의 푸 Händler.pdf 파일'} :

logd = re.compile("Using\sdata\sfrom\s\(yyyy/mm/dd\):\s(? P<Defs_Date>\d{4}/\d+/\d+)[^\w\d] ") 
data = Re.search(logd, log).groupdict() 
만 출력 다음

내가 시도했지만 내가 가진

출력은 다음과 같습니다

{'Defs_Date': '2011/8/3'} 

사람이 나를 내가 찾고있는 정보를 추출하는 내 정규식을 업데이트 도와 드릴까요? 로그 파일의 넓은보기 밖으로

답변

1

이 당신을 도울 수 있습니다

In [1]: import re 

In [2]: txt = open('foo.log', 'r').read() 

In [3]: regexp = re.compile(r'''Using data.+\): (?P<Defs_Date>\d{4}/\d+/\d+).+(?P<Warning>Warning: .+)Loading.+scanned.''', re.S) 

In [4]: regexp.search(txt).groupdict() 
Out[4]: 
{'Defs_Date': '2011/8/3', 
'Warning': 'Warning: E:\\test\\foo\n  H\xc3\xa4ndler.pdf File not Found.\n  '} 

프로세스의 요구에 맞게 출력.