Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 regex在测试中获取一些JSON_Javascript_Regex_Node.js - Fatal编程技术网

Javascript regex在测试中获取一些JSON

Javascript regex在测试中获取一些JSON,javascript,regex,node.js,Javascript,Regex,Node.js,我有一些文本是这样格式化的: var string = 'some random text fjijd {"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}} some other text bla bla' 我想知道如何提取可以用正则表达式解析的json字符串化对象 更新 我正在使用spawn和stdout数据(即应用程序日志-log=stdou

我有一些文本是这样格式化的:

var string = 'some random text fjijd {"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}} some other text bla bla'
我想知道如何提取可以用正则表达式解析的json字符串化对象

更新
我正在使用
spawn
stdout
数据(即应用程序日志
-log=stdout
)从node.js应用程序运行一个子进程,以这种方式格式化。别问我怎么做,为什么,对不起

var cproc = require("child_process");
proc = cproc.spawn("./ngrok", ['-log=stdout', '8080']);
proc.stdout.on("data", function(res) {
  console.log("Data received: " + res);
});
接收到的数据是纯文本,如下所示:

[08/10/14 01:49:37] [DEBG] [ctl:604a481c] Read message {"Type":"ReqProxy","Payload":{}}

它还包括调试信息

上次更新:另一个解决方案

/((?:{).*(?:}))/g

最初的答案是:

这个怎么样。我相信您只需要这个字符串中的JSON部分。如果您不希望嵌套对象,则可以将模式更改为
/({.*?})/g

输出:

{"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}}

|

上次更新:另一个解决方案

/((?:{).*(?:}))/g

最初的答案是:

这个怎么样。我相信您只需要这个字符串中的JSON部分。如果您不希望嵌套对象,则可以将模式更改为
/({.*?})/g

输出:

{"Type":"NewTunnel","Payload":{"ReqId":"e425ebb50d220816","Url":"asaa","Protocol":"http","Error":""}}

|

您可以使用此正则表达式:

({.*})


您可以使用此正则表达式:

({.*})


为什么字符串开头的JSON无效?({.*})如果随机文本中没有花括号,真正的问题是,为什么JSON周围有一些文本填充?我正在使用spawn从nodejs应用程序运行一个子进程,stdout数据(即应用程序日志(-log=stdout))是以这种方式格式化的纯文本。别问我怎么做,为什么,对不起<代码>var cproc=要求(“子进程”);proc=cproc.spawn(“./ngrok”,['-log=stdout','8080']);proc.stdout.on(“数据”,函数(res){console.log(“收到的数据:+res);})接收到的数据是纯文本,如下所示:接收到的数据:
[08/10/14 01:49:37][DEBG][ctl:604a481c]读取消息{“Type”:“ReqProxy”,“Payload”:{}}
它还包括调试信息@普拉克斯@mscdex@Morrisda如果您想包含新代码,最好编辑您的问题,而不是写注释。为什么字符串开头的JSON无效?({.*})如果随机文本中没有花括号,那么真正的问题是,为什么JSON周围有一些文本填充?我正在使用spawn从nodejs应用程序运行一个子进程,stdout数据(即应用程序日志(-log=stdout))是以这种方式格式化的纯文本。别问我怎么做,为什么,对不起<代码>var cproc=要求(“子进程”);proc=cproc.spawn(“./ngrok”,['-log=stdout','8080']);proc.stdout.on(“数据”,函数(res){console.log(“收到的数据:+res);})接收到的数据是纯文本,如下所示:接收到的数据:
[08/10/14 01:49:37][DEBG][ctl:604a481c]读取消息{“Type”:“ReqProxy”,“Payload”:{}}
它还包括调试信息@普拉克斯@mscdex@Morrisda如果您想包含新代码,最好编辑您的问题,而不是写评论。