gpt4 book ai didi

javascript - 使用正则表达式匹配 JSON

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:02 27 4
gpt4 key购买 nike

我有一个包含许多对象文字的 JavaScript 文件:

// lots of irrelevant code
oneParticularFunction({
key1: "string value",
key2: 12345,
key3: "strings which may contain ({ arbitrary characters })"
});
// more irrelevant code

我需要编写一些 Python 代码来提取这些文字。

我的第一次尝试是正则表达式 oneParticularFunction\(\{(.*?)\}\);。但如果字面量包含“})”,则此操作失败。

因为我知道对象将是有效 JavaScript 文件中的有效 JSON(匹配的引号、大括号等),是否有更优雅的方法来提取它们?

(换句话说,困难在于删除我不关心的所有其他 JavaScript 代码。)

编辑:最后,我对任何不包含子对象的对象使用了正则表达式...

oneParticularFunction\((\{([^"}]*"[^"]*"[^"}]*)*?[^"]*?\})\);

...并手动跟踪打开/关闭大括号以处理任何带有嵌套的内容。

最佳答案

为什么不写一个状态机来读取 { 并在每个 { 上递增一个计数器并在每个 } 上递减它所以当它再次达到 0 时,获取中间的所有字符并使用 python 中的 json 解析器来检查它是否是否有效?这样,您可以获得语法错误的好处,而不是从正则表达式中简单匹配不匹配(记住 python 是免费的,因此不可能出现误报)。

关于javascript - 使用正则表达式匹配 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40456091/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com