我有一个看起来像这样的字符串。这显然是一个多行字符串,我想将它分成每个字符串一个字符串。如何从多行字符串中提取多个模式
{
"timestamp":1317911700,
"application":"system.dev",
"metrics":{
"qlen":0,
"read.bytes":0,
"write.bytes":185165.,
"busy":0.021423
},
"dimensions":{
"device":"sda"
}
}
{
"timestamp":1317911700,
"application":"system.fs",
"metrics":{
"inodes.used":246627,
"inodes.free":28703901,
"capacity.kb":227927024,
"available.kb":209528472,
"used.kb":6820512
},
"dimensions":{
"filesystem":"/"
}
}
{
"status_code":0,
"application":"system",
"status_msg":"Data collected successfully"
}
我正则表达式是这样的:
/^({\n[^}]+^})/m
但我只捕捉:
{
"status_code":0,
"application":"system",
"status_msg":"Data collected successfully"
}
这还挺有道理的,因为这是其中第一个大括号。我试图做的是从任何地方捕捉/^{/到任何有/ ^} /的位置作为单个字符串。但我认为其中的其他花括号是tr
有没有你不能使用一个真正的JSON解析器来提取你想要的数据的原因是什么? – AFresh1
这不是有效的JSON。它必须看起来像是有效的。 [{stanza1},{stanza2},{stanza99}]。我已经通过一个验证器来运行它,它现在是失败的。我不控制输出,所以我需要捕捉它并自己咀嚼。我想知道我是否能用前瞻来做点什么。我的@foo =/somelookahead /; – gdanko
没关系,我看到每个节末尾都没有逗号,所以JSON解析不起作用。 – AFresh1