正则表达式捕获两个字符之间的匹配的单词之间

时间:2020-05-30 08:51:50

标签: regex

我正在尝试找出提取与两个指定字符之间的单词匹配的两个字符之间的所有文本(忽略换行符)的最佳方法。

在下面的示例中,我想按邮政编码 22222 查找并从 {} 提取/分组其块,即{ “ zip”:“ 22222”, “总计”:2 }

示例:

{
   "zip":"11111",
   "total":1
},
{
   "zip":"22222",
   "total":2
},
{
   "zip":"33333",
   "total":3
}

要提取/捕获/分组邮政编码22222的块{...},如下所示:

{
   "zip":"22222",
   "total":2
}  

我尝试了以下操作,但这是捕获所有邮政编码的块

(?s)(?<={)(.*?)(?=}) 

https://regex101.com/r/0wTDyj/1

1 个答案:

答案 0 :(得分:0)

下面的正则表达式为我工作:

(?s)(?= {)(?:(?:( ?!“ zip”)。)?“ zip” \ s :\ s *“ 22222”。*? )(?<=})