Python中文
首页
教程
问答
标签
搜索
登录
注册
将JSON与正则表达式匹配
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个JavaScript文件包含许多对象文本:</p> <pre><code>// lots of irrelevant code oneParticularFunction({ key1: "string value", key2: 12345, key3: "strings which may contain ({ arbitrary characters })" }); // more irrelevant code </code></pre> <p>我需要编写一些Python代码来提取这些文本。在</p> <p>我的第一次尝试是正则表达式<code>oneParticularFunction\(\{(.*?)\}\);</code>。但如果文本包含“}”,则此操作失败。在</p> <p>既然我知道对象在一个有效的JavaScript文件中是有效的JSON(匹配的引号、大括号等),有没有更优雅的方法来提取它们呢?在</p> <p>(换句话说,困难在于删除我不关心的所有其他JavaScript代码。)</p> <p>编辑:最后,我对不包含子对象的任何对象使用正则表达式。。。在</p> ^{pr2}$ <p>…用手追踪任何有嵌套的东西。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>为什么不编写一个状态机来读取{,并在every{上增加一个计数器,并用every}递减它,所以当它再次达到0时,取中间的所有字符,并使用python中的json解析器来检查它是否有效?这样,您就可以从语法错误中获得好处,而不是从regex中获得简单的match no match(记住python是{免费的,所以不可能出现误报)。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何提高Djang的410误差
8 回答
如何提高doc2vec模型中两个文档(句子)的余弦相似度?
3 回答
如何提高Docker的日志限制?|[输出已剪裁,达到日志限制100KiB/s]
2 回答
如何提高DQN的性能?
7 回答
如何提高EasyOCR的准确性/预测?
5 回答
如何提高Euler#39项目解决方案的效率?
1 回答
如何提高F1成绩进行分类
3 回答
如何提高FaceNet的准确性
6 回答
如何提高fft处理的精度?
10 回答
如何提高Fibonacci实现对大n的精度?
9 回答
如何提高Flask与psycopg2的连接时间
2 回答
如何提高FosterCauer变换的scipy.signal.invres()的数值稳定性?
5 回答
如何提高gae查询的性能?
2 回答
如何提高GANs用于时间序列预测/异常检测的结果
5 回答
如何提高gevent和tornado组合的性能?
6 回答
如何提高googleappengin请求日志的吞吐量
3 回答
如何提高googlevision文本识别的准确性
7 回答
如何提高groupby/apply效率
5 回答
如何提高Gunicorn中的请求率
8 回答
如何提高G中的文件编码转换
9 回答