首页 > 解决方案 > 每次{}之间的数据不匹配某些数据时,如何在一个组中匹配某些数据以及{}之间的正则表达式和颤振?

问题描述

我在输入中有这个字符串列表

>>> 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:\[[^\][]*?){(.*?)}(?=[^\][]*])

标签: regexflutter

解决方案


在这里你有工作正则表达式:(?<=Text\("key1:\[{).+?(?=})

编辑:

如果要匹配大括号之间的所有内容,可以使用此正则表达式:{(.*?)}


推荐阅读