先说了,其实很鸡肋,我也是为了多熟悉下vim的正则才这么做的
做和1号店的接口通讯的开发工作,一号店接口的数据都是以json方式给的,
要用到项目中,先要获取到json数据,然后用JavaScriptSerializer(asp.net平台)将数据转换为对象
对象类型对应的就是他们的json各个节点了~
好,实际说说操作吧,如下图显示的是接口(http://openapi.yihaodian.com/b2b2c/opendoc/orderItem.html)中提供的json中的数据节点:
我想要转换的结果是下面这样的(target):
这是典型的xml注释风格,
我就像把页面上数据复制下来,然后格式化,用来当作实体类
------
步骤:
1. 鼠标拖一下,Ctrl+C
2. 转战 vim,进入 insert 模式,Shift+Insert:把刚刚复制到的数据粘贴到vim中
3. 全局替换,命令:
%s#^\(\w\+\)\t\(\w\+\)\t.\t\n\(.\+\)#/// <summary>\r/// \3\r/// <summary>\rpublic string \1 {get;set;}
主要思路就是用了两次反向匹配,把”名称“当作属性名,把”描述“转为注释title
正则都很简单,有几点需要说明的:
1. vim中正则的反向匹配,用 \(\) 这样的方式,括号一定要加反斜线。
2. 如果要替换成换行,用 \r,如果要匹配,用 \n 这点在Windows下面表现的可能有差异,待确认,两个都试一下即可
3 # 是分隔符,也可以中默认的斜线(/),但是本例中牵扯到的斜线比较多,每个地方都转义显得很混乱。分隔符除了用 "/"、"#"外也可以用"|"、"$"、"!"等字符