Regex 用于解析JSON对象的正则表达式
我有一个Json文件,其中包含如下文本:Regex 用于解析JSON对象的正则表达式,regex,Regex,我有一个Json文件,其中包含如下文本: { title1: { x: "abc", y: "def" } , title2:{ x: "{{abc}}", y: "{{def}}" }, } 我想先拿到书名1书名2,。。。组。然后,对于每组,我想得到x:…,y:。。。部分。我试着分两步来做。对于第一步,我使用了以下regexp: [\s\S]*:\s*{(((?!}\s*,)[\s\S])*)
{
title1: {
x: "abc",
y: "def"
} ,
title2:{
x: "{{abc}}",
y: "{{def}}"
},
}
我想先拿到书名1书名2,。。。组。然后,对于每组,我想得到x:…,y:。。。部分。我试着分两步来做。对于第一步,我使用了以下regexp:
[\s\S]*:\s*{(((?!}\s*,)[\s\S])*)
我想说的是find
:
后跟可选空格,然后是{
。然后继续,直到看到}
后跟可选空格和,
。但它发现整个文本是匹配的,而不是单独的标题1和标题2部分。怎么了 也许,这个表达式
(\S+):\s*{\s*(((\S+):\s*"{*([^"{}]*)}*"\s*,?\s*)+)}
或:
使用有界量词可能更接近您的想法
如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况
编写自己的JSON解析器可能更容易。或者更容易使用现有的。您尝试使用正则表达式有什么特别的原因吗?几条简短的注释。首先,问题中的文本不是JSON。第二,假设您得到了JSON,您不能用正则表达式解析JSON(由于任意嵌套的结构),因此您应该使用您的语言内置的JSON解析器。所有主要语言都有。干杯。我如何才能使这一个作为一个完整的匹配:标题1:{x:“abc”,y:“def”},有没有一种方法可以使用,但把x:“abc”,y:“def”作为一个组?如果你能在原始答案中发布它,我愿意接受你的最后一个解决方案。
(\S+):\s*{\s*(((\S+):\s*"{{0,2}([^"{}]*)}{0,2}"\s*,?\s*)+)}