일반 텍스트를 js 배열로 구문 분석하는 방법을 찾고 있습니다. 나는 이미이 일을하고 싶지만 붙잡혀있는 어떤 계획을 발견했다. 일반 텍스트의일반 텍스트를 js 배열로 구문 분석 - 두 번째 요소에 구분 기호를 추가하십시오.
부 :
2017-11-08 09:43:49,153 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}2017-11-08 09:53:02,293 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}2017-11-08 09:53:02,355 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}
예상 결과
const arr = [
'2017-11-08 09:43:49,153 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}',
'2017-11-08 09:53:02,293 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}',
'2017-11-08 09:53:02,355 [INFO ] root: {\"methodId\":6,\"requestBody\":{},\"token\":\"XXXX\"}'
]
정규식 패턴 :
/}\d{4}-\d{2}/
각 청크 개체 "}"를 닫고 새 날짜 "YYYY-MM"을 시작하여 끝납니다. 내가 이런 식으로 분할하는 경우
문제
plainText.split(/}\d{4}-\d{2}/)
, 그것은 항상 내 분리 "를 먹고". 거기에 텍스트를 분할하고 분할 된 쌍에서 두 번째 요소에 설립 된 구분 기호를 추가하는 몇 가지 방법이 있습니까? 그런 다음 첫 번째 항목에 '}'을 추가하고 두 번째 항목에서 '}'을 삭제할 수 있습니다. 그것은 내가 생각하고있는 해결책이지만 어쩌면 당신은 더 나은 것을 제안 할 수 있습니다. JSON 데이터는 날짜와 같은 문자열을 포함하지 않는 경우
이 엉망인 평범한 텍스트는 어디서 왔습니까? – melpomene
's.split (/ \ b (? = \ d {4} - \ d {2} - \ d {2} \ s + [\ d :] + \ s + \ [정보] \ s + 루트 :) /). filter (부울)'. 요구 사항이 느슨하면 패턴을 줄이십시오 (시나리오에 따라 날짜가 다르면/\ b (? = \ d {4} - \ d {2} - \ d {2} \ s/문자열은 JSON 데이터에 표시되지 않습니다.) [이 데모] (https://regex101.com/r/6ZPbkW/1/)를 참조하십시오. –
@melpomene API와의 반응은 입니다. 답변을 얻는 형식을 제어하십시오. –