JSON으로 데이터를 구문 분석하려고합니다. 데이터는 다음과 같습니다 자바 정규식 - 부정적인 lookbehind 및 lookahead
[{
'Id': 1,
'FirstName': 'bob',
'LastName': '',
'Description': 'description can include escaped single quotes: \'.'
}]
는 결과가되는 방법 :
[{
"Id": 1,
"FirstName": "bob",
"LastName": "",
"Description": "description can include escaped single quotes: \'."
}]
점은 혼자 따옴표를 탈출 유지하면서 큰 따옴표로 모든 이스케이프 작은 따옴표를 대체하는 것입니다.
나는 정규식을 사용하여 이스케이프 처리 된 작은 따옴표를 무시하면서 작은 따옴표를 큰 따옴표로 변환 할 때 JSON을 큰 따옴표로 변환하는 데 이미 잘 작동합니다.
/((?!\\).{1}|^.{0,0})\'/g
문제 :. 유효하지 JSON입니다 "LastName": "'
'LastName': ''
, 그것은 단지 "가 아니라 두 번째 ...이로를 만들기로 첫 번째 견적을 대체한다는 것입니다
질문 : 나는
데이터가 JavaScript 리터럴 인 경우 [JavaScript 파서] (https://github.com/ternjs/acorn)를 사용하십시오. – Ryan
'.replace (/ '([^'\\]*(?:\\.[^'\\]*)*)'/ g, ' "$ 1"') 시도해 볼 수도 있습니다. –
[this 하나] (https://regex101.com/r/5tWNgh/1) @ WiktorStribiżew – revo