regex - 正则表达式从匹配组中取反
问题描述
我正在尝试使用正则表达式来匹配除“id”之外的任何内容:数字部分
我想出了这个 "(\b(id":)(\d+)\b)" 来找到 id:byDigits 模式,但我需要否定它但无法绕过它。
[{"age":1,"id":123,"value":"14"},
{"age":1,"id":4214,"value":"4324"},
{"age":3,"id":4244,"value":"545"}]
任何帮助表示赞赏。
解决方案
最简单的选择是将字符串的其余部分捕获到组中,并在替换中使用它,如下所示
演示: https ://regex101.com/r/cRVA5C/2/
图案: ^([\s\S]*?)\s*"id":\d+,?\s*([\s\S]*?)$
分解:
([\s\S]*?)
: 匹配前后任意数量的任意字符"id":
。将其分组\1
并\2
\s*"id":\d+,?\s*
: 匹配"id"=\d+
,前面可选空格,后面可选空格和,
.- 作为替代,使用
\1\2
, 来获得所需的输出。
注意: Regex 可能不是解析 JSON 的理想工具。
推荐阅读
- android - 约束布局适应所有屏幕
- ios - 在 iOS SDK 4.38.0 中 Facebook 登录有时会失败
- c# - 即使条件为真,为什么我从 sql 查询中得到空结果?
- c# - 在VS winform中更改编辑模式下控件的Z顺序
- ios - 后台线程崩溃
- c++ - C++ 匹配括号解决方案
- gnu - GNU radio Stick 是否在硬件级别具有内置的高通滤波器,还是在设计模块时实现?
- python-sphinx - 版本替换在子文档中不起作用
- java - 如何使用 Selenium 向下滚动?
- ruby-on-rails - Rails 5 - 我可以在控制台中输入 ActiveRecord 代码来检查记录吗?