1

标准正则表达式

我有一个(部分)JSON 字符串,如下所示:

"99887":{"foo":"99887","bar":"paul"},"88776":{"foo":"88776"...

{我需要在每个生成这个之前去掉数字字符串:

{"foo":"99887","bar":"paul"},{"foo":"88776"...

对于普通的正则表达式,我会使用模式("\d{5}"\:)(\{)并保持$2.

sed

我很难把它变成一个 sed 命令:

sed 's/\("\d{5}":\)\(\{\)/\2/g'

产生错误信息

错误:重复运算符操作数无效

在其他情况下,此消息似乎与sed不支持前瞻/后视(我不使用)的事实有关。

4

1 回答 1

4

您的 sed 的问题是:

  • 你没有使用-r,所以 sed 不会使用扩展的正则表达式
  • \d{5}不会被 sed 识别,\{也无效,因为它没有关闭

(没有-r,你可以使用\{5\};有-r,你可以{5}

这一行应该给你预期的输出:

 sed 's/"[0-9]*":{/{/g' file
于 2013-04-27T21:41:23.253 回答