【问题标题】:regex: remove double quotes from Json values正则表达式:从 Json 值中删除双引号
【发布时间】:2017-02-05 23:00:01
【问题描述】:

我在正则表达式方面非常糟糕,现在我遇到了一个只能通过正则表达式解决的问题

我有一个 json 字符串在错误的地方有双引号

例如:

[
  {
    "customerid": "1234",
    "price": "123.456",
    "foo","bar"
  }
]

我想从所有数字字段(customerid、price)中删除双引号,并将它们保留为任何字母数字字符(foo)

有没有神奇的正则表达式可以帮助我实现这一目标?

【问题讨论】:

    标签: regex


    【解决方案1】:

    要删除“简单”数字周围的双引号,请使用以下正则表达式模式:

    "(-?\d+(\.\d+)?)"
    

    替换组是$1

    https://regex101.com/r/gfVkaa/1

    【讨论】:

    • 感谢@Roman,您所说的“简单”数字是什么意思?什么不简单
    • 这里是一些复数的例子:1.3e-5, 300-400i
    • 啊,谢谢,我想我现在不能坚持简单的数字:)
    【解决方案2】:

    sed

    $ sed -r 's/"([0-9]+\.?[0-9]*)"/\1/' file
    

    您也可以微调以仅处理值,但不确定是否需要 json 格式。

    【讨论】:

    • 你有没有机会给我一个关于 regex101 的例子?我从未使用过 sed
    猜你喜欢
    • 2013-08-27
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2015-02-13
    • 2021-11-19
    • 1970-01-01
    相关资源
    最近更新 更多