로그 파일을 읽고 분석하고 싶습니다. 불행히도 파일은 상당히 "못생긴"방식으로 저장됩니다 (중간에 특수 문자가 많이 포함되어 있음). 그래서 각 행이 하나의 항목으로 읽히지 않습니다. 서로 다른 항목을 구분하는 유일한 방법은 정규 표현식을 사용하는 것입니다. 각 항목의 시작 부분이 지정된 패턴을 따르기 때문입니다.R - 정규 표현식을 사용하여 문자 벡터 분할
첫 번째 방법은 문자 벡터에서 패턴을 식별하고 (필자는 판독기 패키지에서 read_file을 사용함) 해당 위치를 사용하여 벡터를 strsplit과 분리하는 것입니다. 불행히도 결과가 항상 항목에 해당하지 않기 때문에 위치가 항상 일치하지 않는 것 같습니다 (특수 문자에 문제가있는 것 같음). 이것은 해당 정규 표현식으로 보이는 여기에 일반적인 항목
입니다 : - 조지
16/10/2017, 21시 51분는 다음과 같이
파일의 전형적인 라인이 보인다 다음 : 내가 원하는
([[:digit:]]{2})/([[:digit:]]{2})/([[:digit:]]{4}), ([[:digit:]]{2}):([[:digit:]]{2}) - ([[:alpha:]]+):
우선 각 줄은 나는 그것의 다른 파에 패턴을 분할 거라고 다음 단계에서 (특정 항목에 해당와 data.frame입니다 ts). 이 로그 파일을 볼 수 있습니다
regex.log = "([[:digit:]]{2})/([[:digit:]]{2})/([[:digit:]]{4}), ([[:digit:]]{2}):([[:digit:]]{2}) - ([[:alpha:]]+):" log.regex = gregexpr(regex.log, file.log)[[1]] log.splitted = substring(file.log, log.regex, log.regex[2:355]-1)
으로
355 개 항목이 있습니다 : 내가 지금까지 시도 무엇 는 다음이었다. 첫 번째 것들은 정확하게 분리되어 있습니다. 정규 표현식/패턴의 정보를 잃지 않고 정규 표현식을 사용하여 문자 벡터를 분리하려면 어떻게해야합니까?
을 (regex.log, 파일 .log)'와''gsub (regex.log, "", file.log)'를 사용하여 텍스트를 추출합니다. – Jthorpe