Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要通过正则表达式从文本文件中提取字符串的帮助吗_Javascript_C#_Json - Fatal编程技术网

Javascript 需要通过正则表达式从文本文件中提取字符串的帮助吗

Javascript 需要通过正则表达式从文本文件中提取字符串的帮助吗,javascript,c#,json,Javascript,C#,Json,我试图通过regex从text/js文件中提取某个js对象。 整个文件包含大量代码,但我只对获取名为cfg的变量感兴趣 该文件可能如下所示: function A(){ } var cfg = { setting:1, setting2: 5, setting3:[], setting4:{ setting5:"test" } }; function B(){ } 有人能帮我找出这个的正则表达式吗?我在正则表达式方面很糟糕,我尝试过很多可用的

我试图通过regex从text/js文件中提取某个js对象。 整个文件包含大量代码,但我只对获取名为
cfg
的变量感兴趣

该文件可能如下所示:

function A(){

}

var cfg = {
   setting:1,
   setting2: 5,
   setting3:[],
   setting4:{ 
      setting5:"test"
   }
};

function B(){

}
有人能帮我找出这个的正则表达式吗?我在正则表达式方面很糟糕,我尝试过很多可用的解决方案,但其中一些似乎在C#中无效。 目前,我的解决方案是使用:

string[] split = input.Split(new string[] { "var cfg = " }, StringSplitOptions.None);
if(split.Length > 2)
{
   string[] split2 = split[1].Split(new string[] { ";" }, StringSplitOptions.None);
   return JObject.Parse(split2[0]);
}
这显然不包括
cfg
对象的不同书写。像
var cfg={}


提前谢谢

我建议您使用JS解析器,例如,如果您的代码更复杂或将发生更改。但对于您的示例,这应该是可行的:

var r = new Regex(@"var cfg = (?<Content>\{[^;]*});");
var content = r.Match(text).Groups["Content"];
var r=newregex(@“var cfg=(?\{[^;]*});”;
var content=r.Match(text).Groups[“content”];

注意:如果cfg文本包含
正则表达式将无法按预期工作。

不要使用正则表达式,而是使用真正的解析器,如下所述,例如: