【发布时间】:2021-11-09 00:30:42
【问题描述】:
注:这个问题纯粹是为了学习目的而提出的。我很清楚所提出的具体问题可以在任何现代代码编辑器中轻松解决。
我喜欢正则表达式的强大功能,但一直不太了解如何使用它们更高级的功能,尤其是外观。经过两个小时的 SO 搜索和谷歌搜索,加上使用 regexr.com,我想出了以下内容:
// Search regex: (?<=\[\n *\{\n)(?<= {4})(.*\n)*
// Replace regex: [{\n$&]
// Should take the following JSON object array:
[
{
"prop1": val1,
"prop2": val2,
// ...arbitrary number of props
},
// ...arbitrary number of objects matching the above structure
]
And format it like so:
[{ // first object's opening brace adjacent to opening bracket
// ...first object's props
}, {
// ...other objects' props
}] // last object's closing brace adjacent to closing bracket
第二个回顾是尝试去缩进每个道具线,以及关闭每个对象并打开下一个对象的线。但它似乎打破了整个事情。
没有它我会得到almost a perfect result,但是这些行没有缩进,并且最终对象的右大括号之后的换行符也被错误地匹配,就像这样(查看链接以获得更完整的示例):
[{
"prop1": val1,
"prop2: val2
}, {
"prop1": val1,
"prop2: val2
}
]
【问题讨论】:
标签: javascript json regex