【问题标题】:regex to negate from matched group正则表达式从匹配组中取反
【发布时间】:2021-03-29 14:43:24
【问题描述】:

我正在尝试使用正则表达式来匹配除“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"}]

感谢任何帮助。

【问题讨论】:

    标签: regex regex-negation


    【解决方案1】:

    最简单的选择是将字符串的其余部分分组并在下面的替换中使用它

    演示: 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,以获得所需的输出。

    注意:正则表达式可能不是解析 JSON 的理想工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 2020-07-02
      • 2011-06-07
      • 1970-01-01
      相关资源
      最近更新 更多