【问题标题】:Regex to find keys in JSON正则表达式在 JSON 中查找键
【发布时间】:2017-05-04 09:25:02
【问题描述】:

我想在 linux shell grep 上匹配 JSON 字符串中的键。我的目标是删除 JSON 键,以便值以 CSV 格式显示。请帮助我使用正则表达式。我试过"(.*?)":

{"field1":"value1","field2":"value2"}

但上面的正则表达式匹配 "field1": 然后是 "value1","field2":

所以基本上它不应该匹配包含逗号的组。我知道这应该在 python 或 java 中完成。但我想避免在该特定服务器上部署应用程序。此外,该服务器的互联网访问权限和许多其他限制已被撤销,因此我无法安装任何新工具或命令。有可能吗?

【问题讨论】:

  • downvoter 可以解释原因吗?
  • 试试"([^"]*?)":
  • 我没有投反对票,可能的原因可能是 grep 不是解析 JSON 文件的 正确 工具,它是非语法感知的,使用更具体的工具,例如jq
  • @Inian 再次检查我编辑的问题。我无法在此服务器上安装软件。所以我必须用我所拥有的来工作
  • @Shades88 我不知道为什么你的问题被否决了。反正我投了赞成票。

标签: json regex grep


【解决方案1】:

你可以试试下面的正则表达式:

"([^"]+?)"\s*:

它将匹配任何可能在引号之间的单词字符(" "),然后是:(忽略空格)。

Demo

【讨论】:

  • 嘿,这个正则表达式也匹配 http: 如果它存在于值中。
  • @Shades88 我已经更新了我的正则表达式/演示,它可能适用于 url 和空格 :)
猜你喜欢
  • 1970-01-01
  • 2011-05-20
  • 2015-05-26
  • 2018-08-10
  • 2012-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多