regex - 正则表达式捕获两个字符之间匹配的单词
问题描述
我试图找出提取两个字符之间的所有文本(忽略换行符)的最佳方法,这些文本与指定的两个字符之间的单词匹配。
在下面的示例中,我想通过 zip 22222找到并从{ until }提取/分组它的块,即 { "zip":"22222", "total":2 }
例子 :
{
"zip":"11111",
"total":1
},
{
"zip":"22222",
"total":2
},
{
"zip":"33333",
"total":3
}
想要提取/捕获/分组 zip 22222 的块 {...},如下所示:
{
"zip":"22222",
"total":2
}
我尝试了以下方法,但这正在捕获所有邮政编码的块
(?s)(?<={)(.*?)(?=})
解决方案
下面的正则表达式对我有用:
(?s)(?={)(?:(?:(?!"zip").) ?"zip"\s :\s*"22222".*?)(?<=})
推荐阅读
- javascript - 循环遍历 2 个 Json 文件,其中每个 200k 记录
- concatenation - MODIS(MYD06_L2) 使用 xarray 和 dask 连接文件
- cordova - 如何使用cordova本地化插件
- java - 如何修复无法解决视图中膨胀的布局?
- lubridate - 如何找到两个日期列之间的年份差异?
- mysql - 位操纵器如何在 mySQL 中工作(以本例为例)
- html - 尽管是 inline-block,但元素表现得像块
- azure-api-management - 支持关闭时 Azure Api 管理返回详细错误,包括 oath 令牌
- android - how to connect oracle database with rest api in android?
- azure-devops - 在 Azure DevOps Pipeline 中运行 Angular 测试时出现问题