我試圖修復一些幾乎JSON代碼有時由蒸汽而不是正確的。我的主要問題是關鍵。有一個stack topic關於解決類似的問題,但它並不完美。與/(['"])?([a-zA-Z0-9_]+)(['"])?:/g
匹配的鍵還可以匹配http鏈接或內聯css。JavaScript - 匹配鍵與正則表達式格式不正確JSON
是否有可能匹配/(['"])?([a-zA-Z0-9_]+)(['"])?:/g
不在([\'](?:.)*[\'])
匹配的字符串(此值匹配值)?
樣畸形的JSON:
{
app_data:
{ '123':
{
appid: 123,
name: 'some game',
icon: 'http://example.com',
test: 'some text with link http://steamcommunity.com don't match it please',
sample: 'blah blah background: red; blah blah'
}
}
}
嗯,它看起來像一個結構良好的javascript :)如果你相信它的來源足夠多,你可以簡單地使用'eval'。這當然是邪惡的,但並不像使用正則表達式試圖「修復」某些東西一樣。 –
由於「不要」中的非轉義引號,它不是格式正確的javascript。你能依靠你想要匹配的鍵/值對嗎?如果是這樣的話,你可以用'/([^ {] *?):(。*)/''匹配所有內容,然後用'$ 1'替換:$ 2' –
「,因爲」不要「」我相信這是一個錯字。 –