-
[Python] 정규식 전방탐색과 후방탐색을 이용한 문자열 분할Python/Python Programming 2018. 5. 13. 00:34
DOCS : https://docs.python.org/3/library/re.html
로그파일이 일정한 구분자 (콤마(,), 공백, 세미콜론(;)) 로 구분되어 있으면 리스트나 튜플이 인덱싱을 이용하여
쉽게 분석할 수 있다.
하지만 비정형 로그 분석 혹은 모든 이벤트에 따라 로그형식이 일정치 않다면 파이썬 정규식의 기능인
"전방탐색"과 "후방탐색"을 통해 분할 할 수 있다.
예제 텍스트 파일)
2018-05-12 00:00:01 ABC DEFG log: this is python
2018-05-12 00:00:02 ABC DEFG HI log: this is python
2018-05-12 00:00:03 ABC DEFG HI JKL log: this is python
----------------------------------------------------------------------
1. 전방탐색 (lookahead assertion) - log: 앞부분
p = re.compile('.+(?=log:)') with open(r'D:\Log\test.txt', 'r') as f: for x in f.readlines(): m = p.search(x) print(m.group())
2018-05-12 00:00:01 ABC DEFG 2018-05-12 00:00:02 ABC DEFG HI 2018-05-12 00:00:03 ABC DEFG HI JKL
2. 후방탐색( positive lookbehind assertion) - log: 뒷부분
import re p = re.compile('(?<=log:).+') with open(r'D:\Log\test.txt', 'r') as f: for x in f.readlines(): m = p.search(x) print(m.group())
this is python this is python this is python
'Python > Python Programming' 카테고리의 다른 글
[Python] PEP - 스타일코드 공백(Whitespace) (0) 2018.05.14 [Python] 문자열 100개씩 잘라서 출력하기 (0) 2018.05.14 [Python] 반복가능 (iterable)한 객체 오른쪽(right) 순회 (0) 2018.05.13 [Python] 리스트에서 숫자요소의 인덱스 위치 구하기 (0) 2018.05.13 [Python] 정렬과 공백을 이용하여 보기좋게 출력하기 (0) 2018.05.12 [Python] Python 버전 정보 (0) 2018.05.12 [Python] MSSQL 실행쿼리 모니터링 (0) 2018.05.11 [Python] ftplib 모듈을 이용한 FTP 파일 업로드 (0) 2018.05.09