我需要提取JSON字符串(稍後將用於解析JSON)從日誌文件中提取JSON。該文件的格式如下:JavaScript的 - 從日誌文件
[16:11:20] some text
[16:11:20] some text
some text
some text
[
{
"description": "some text",
"elements": [{
"id": "some text",
"keyword": "some text",
"line": 20,
"name": "some text",
"steps": [{
"arguments": [],
"keyword": "some text ",
"result": {
"status": "passed",
"duration": 14884761888
},
"hidden": true,
"match": {
"location": "some text"
}
},
{
"arguments": [],
"keyword": "sometext ",
"name": "sometext",
"result": {
"status": "passed",
"duration": 463674
},
"line": 11,
"match": {
"location": "sometext"
}
}
],
"tags": [
{
"name": "@sometext-no",
"line": 7
},
{
"name": "@sometext",
"line": 8
}
],
"type": "sometext"
}
],
"id": "sometext",
"keyword": "sometext",
"line": 1,
"name": "sometext",
"tags": [],
"uri": "sometext"
}
][16:11:54] some text
[16:11:54] some text
如何可以構造一個正則表達式在JavaScript其中將從該文件中提取JSON數據,以便它可以通過string.match被使用(),以得到所需的輸出
我嘗試的模式是如下
var regExtract = /(\[\s+\{[\s\S]*\}\s+\]\s+\}\s+\]\s+\}\s+\])/;
var matchedJson = data.toString().match(regExtract)[1];
那麼,那個pat燕鷗不工作?請注意'\ s +'意思是「一個或多個空白字符」,所以這意味着你的模式不符合你的例子。你也可以結束你的模式,'}]'幾次。 –
這裏有一個其提供的格式相匹配行話:https://regex101.com/r/uU9oI0/1 –
會說:「JSON」數據串始終放置在單獨的行? – RomanPerekhrest