标准正则表达式
我有一个(部分)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
不支持前瞻/后退(我不使用)这一事实有关。
答案 0 :(得分:3)
你的问题是:
-r
,因此sed将不会使用扩展正则表达式\d
,{5}
将无法被sed识别,\{
无效,因为它未关闭(没有-r
,您可以使用\{5\}
;使用-r
,您可以使用{5}
)
这一行应该给你预期的输出:
sed 's/"[0-9]*":{/{/g' file