regex - 每次{}之间的数据不匹配某些数据时,如何在一个组中匹配某些数据以及{}之间的正则表达式和颤振?
问题描述
我在输入中有这个字符串列表
>>> Text("key1:[{"title":"Date: J4 (2020-09-04)\n\nDistance: 5\nDurée:
>>> 5\nPoids: 5 d\nObservations: blabla\n","completed":false},
>>> {"title":"Date: J4 (2020-09-04)\n\nDistance: 4\nDurée: 3\nPoids:
>>> 4\nObservations: bla\n","completed":false}]"),
>>> Text("key2:[{"title":"Date: J5 (2020-09-05)\n\nDistance: 5\nDurée:
>>> 5\nPoids: 5 d\nObservations: blablabla\n","completed":false},
>>> {"title":"Date: J4 (2020-09-07)\n\nDistance: 4\nDurée: 3\nPoids:
>>> 4\nObservations: blablabla\n","completed":false}]"),
目前,我成功地将 key1 中的所有数据与此正则表达式匹配在一组中
(?<=Text\("key1:\[{)(.*)(?=})
(?<=Text\("key1:\[{) is my positive lookbehind, I start capture after Text("key1:[{
(.*) is to match all characters
(?=}) is to stop when I have a }
但我想有一个不同的群体
group1 "title":"Date: J4 (2020-09-04)\n\nDistance: 5\nDuree: 5\nPoids: 5 d\nObservations: blabla\n","completed":false
group2 "title":"Date: J4 (2020-09-04)\n\nDistance: 4\nDuree: 3\nPoids: 4\nObservations: bla\n","completed":false
重要提示:我只需要匹配所有 {data}key1
并为每个 {data} 创建不同的匹配组
我需要这样的组合,但目前不起作用
(?<=Text\("key1:\[{){(.*?)}(?=})
有了这个, (?<=Text\("key1:\[{)(.*)(?=})
我只能选择 Key1 中的数据
有了这个{(.*?)}
我可以匹配之间的所有数据{ }
如何混合这两个正则表达式?
编辑:我找到了这个帮助你的人
(?<=Text\("key1:\[[^\][]*?){(.*?)}(?=[^\][]*])
解决方案
在这里你有工作正则表达式:(?<=Text\("key1:\[{).+?(?=})
编辑:
如果要匹配大括号之间的所有内容,可以使用此正则表达式:{(.*?)}
推荐阅读
- azure - AZ CLI - 当我尝试列出资源时崩溃
- selenium - 如何根据测试用例通过百分比设置 Jenkins 作业状态
- blockchain - 为什么 Bitcoin-Qt 和区块链 API 之间的区块链费用存在差异?
- python - 将内容添加到列表
- next.js - 错误“getStaticPaths 只能用于动态页面,不能用于 Next JS”
- producer-consumer - 在生产者/消费者问题的关键部分内循环
- python - 将数据集分布与另一个匹配
- regex - 正则表达式 - 最后一次出现后的所有内容
- javascript - 本机模块的单元测试 - 反应本机应用程序
- php - 有没有办法通过作曲家更新扩展并绕过 Magento2 上的内存限制错误