标准正则表达式
我有一个(部分)JSON 字符串,如下所示:
"99887":{"foo":"99887","bar":"paul"},"88776":{"foo":"88776"...
Run Code Online (Sandbox Code Playgroud)
我需要去掉每个之前的数字字符串{才能产生这个:
{"foo":"99887","bar":"paul"},{"foo":"88776"...
Run Code Online (Sandbox Code Playgroud)
对于普通的正则表达式,我会使用模式("\d{5}"\:)(\{)并保留$2.
sed
我在将其转换为 sed 命令时遇到困难:
sed 's/\("\d{5}":\)\(\{\)/\2/g'
Run Code Online (Sandbox Code Playgroud)
产生错误消息
错误:重复运算符操作数无效
sed在其他上下文中,此消息似乎与不支持前瞻/后瞻(我不使用)的事实有关。
你的 sed 的问题是:
-r,所以 sed 不会使用扩展正则表达式\d,{5}不会被 sed 识别,\{也无效,因为它没有关闭(没有-r,你可以使用\{5\};有-r,你可以{5})
这一行应该给你预期的输出:
sed 's/"[0-9]*":{/{/g' file
Run Code Online (Sandbox Code Playgroud)