我正在尝试删除方括号并转换以下字符串:
timelineregionexit
成为:
{"id":1","color": ["green","red", "blue"]}, {"id":2, color:black}
我已经尝试过此代码,但是仍然出现错误:
sed:-e表达式#1,字符39:不匹配)或)
{"id":1","color": "green,red,blue"}, {"id":2, color:black}
我该如何解决?
答案 0 :(得分:1)
您可以使用
sed ':a;s/\(\[[^][]*\)",[ \t]*"/\1,/;ta ; s/\("color"\):[ \t]*\[\([^][]*\)]/\1:\2/g;' file > newfile
请参见online sed demo。
:a;s/\(\[[^][]*\)",[ \t]*"/\1,/;ta
详细信息
:a
-标签s/\(\[[^][]*\)",[ \t]*"/\1,/
:
\(\[[^][]*\)
-查找并捕获除]
和[
之外的0个或更多字符组成的组1。
",
-一个",
子字符串[^ \t]*
-除空格和制表符外,零个或多个字符"
-一个"
字符\1,
-替换为第1组的内容+逗号ta
-如果在前面的迭代中有匹配项,则循环到:a
标签。 s/\("color"\):[ \t]*\[\([^][]*\)]/\1:\2/g
详细信息
\("color"\)
-将"color"
子字符串匹配并捕获到组1中:
-冒号[ \t]*
-超过0个制表符或空格\[
-一个[
字符\([^][]*\)
-第2组:除]
和[
以外的任何0+个字符]
-一个]
字符\1:\2
-替换为Group 1值:
,Group 2值g
-全部出现。答案 1 :(得分:0)
如果您的数据位于“ d”文件中,请尝试使用gnu sed:
var position = {
x: 1,
y: 0
}
position.x=position.x.toFixed(2)