私はJSONにデータを解析しようとしています。結果はどのようにあるべきJavascript Regex - 否定的なlookbehindと先読み
[{
'Id': 1,
'FirstName': 'bob',
'LastName': '',
'Description': 'description can include escaped single quotes: \'.'
}]
:データはこのようになります
[{
"Id": 1,
"FirstName": "bob",
"LastName": "",
"Description": "description can include escaped single quotes: \'."
}]
ポイントだけではエスケープ引用符を残しながら、二重引用符で、すべてのエスケープされていない単一引用符を交換することです。
エスケープされた一重引用符を無視して、一重引用符を二重引用符に変換する際にすでにうまく動作するregexをJSON用に使用しています。
/((?!\\).{1}|^.{0,0})\'/g
問題:問題は少し'LastName': ''
のために、それが唯一の "第二ませんが...この中にそれを作る際の最初の引用符置き換えることです。"LastName": "'
無効JSONで
質問:?どのように私は両方必ず単一引用符を置き換え得ることを確認するために私の正規表現を変更することができ、私は2回連続string.replace
を実行しているように感じるが汚いソリューションです...
データがJavaScriptリテラルの場合は、[JavaScriptパーザ](https://github.com/ternjs/acorn)を使用します。 – Ryan
'.replace(/'([^'\\]*(?:\\,[^'\\]*)*)/ g、 '' $ 1 '')' –
あなたは[この1](https://regex101.com/r/5tWNgh/1)@WiktorStribiżew – revo