匹配每个括号元素的 Python RegEx

标签 python regex

我一直在尝试为以下字符串想出一个正则表达式:

[1,null,"7. Mai 2017"],[2,"test","8. Mai 2018"],[3,"test","9. Mai 2019"]

我正在尝试将每个括号及其内容作为单个元素作为匹配输出,如下所示:

[1,null,"7. Mai 2017"]
[2,"test","8. Mai 2018"]
[3,"test","9. Mai 2019"]

我最初天真的做法是这样的:

(\[[^d],.+\])+

但是,.+ 规则过于笼统,最终会匹配整行。 有什么提示吗?

最佳答案

我不确定您要解析的数据格式及其来源,但它看起来像 JSON。对于这个特定的字符串,在字符串的开头和结尾添加方括号 使其可以JSON 加载:

In [1]: data = '[1,null,"7. Mai 2017"],[2,"test","8. Mai 2018"],[3,"test","9. Mai 2019"]'

In [2]: import json

In [3]: json.loads("[" + data + "]")
Out[3]: 
[[1, None, u'7. Mai 2017'],
 [2, u'test', u'8. Mai 2018'],
 [3, u'test', u'9. Mai 2019']]

注意 null 如何变成 Python 的 None

关于匹配每个括号元素的 Python RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43854165/

相关文章:

python - 如何仅使用 Python(无 matplotlib)制作简单的垂直直方图

python - 使用 Pandas 查找自滚动高点以来的周期数

Java 正则表达式 regionEnd

php - 在 PHP 中拆分嵌套括号的正确方法,例如 "root[one[a,b,c],two[d,e,f]]"到数组?

python - 如何在字符串中包含\作为正则表达式 python 的模式

PHP preg_replace

python - 如何阻止python在特定虚拟环境中安装模块并全局安装它们?

python - 如何关闭 cv2 窗口?

python - Pandas ffill/bfill 用于特定数量的观察

c# - 从 xhtml 文档中删除未关闭的开始 <p> 标签