[英]Regex: Get between first occurrence of one and last occurrence of another
這是字符串:
<html lang=3D"en-US"> <head> </head> <body> <div> <script data-scope=3D"in=
boxmarkup" type=3D"application/json">
{
"api_version": "1.0",
"publisher": {
"api_key": "some_api_key",
"name": "Google Times"
}
}
sdalfk jsdklfj slkdjf lskdjfl sjdlkf jsdlkj flsdkj flsdk jf
我怎樣才能只得到這部分?
{
"api_version": "1.0",
"publisher": {
"api_key": "some_api_key",
"name": "Google Times"
}
}
真的無法弄清楚。 計划是稍后將其解析為JSON。
第一次出現是{
,第二次出現是}
。
大括號。
我認為這可能是答案{(?:\\n|.)*}
如果您確定大括號不能在其他地方,請刪除所有新行並使用以下命令:
var partYouNeed = yourString.match(/\{.*\}/)[0];
例:
var str = '<html lang=3D"en-US"> <head> </head> <body> <div> <script data-scope=3D"in=\\ boxmarkup" type=3D"application/json">\\ {\\ "api_version": "1.0",\\ "publisher": {\\ "api_key": "some_api_key",\\ "name": "Google Times"\\ }\\ }\\ sdalfk jsdklfj slkdjf lskdjfl sjdlkf jsdlkj flsdkj flsdk jf'; var result = str.replace(/\\n|\\r/g, '') // remove all newlines .match(/\\{.*\\}/); // match anything inside curly braces if(result) console.log(result[0]); else console.log("nothing found!");
這是東西:
...
myString = myString.replace(/\s/g,'');
var jsonRegex = /.*{(.*)}.*/g;
var match = jsonRegex.exec(myString);
var jsonStr = match[1];
var myObject;
try {
myObject = JSON.parse(jsonStr);
} catch (JSONException) {
console.log('Error while parsing data: ', JSONException);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.