vim如何用正则表达式把数字换成相同长度的空格呢?

比如如下1.23451.21.32.32.1232.4如何变成下面的结果呢?1.21.21.32.32.12.4我使用:%s/\(\.\d\)\d\{1,}/\1/g也就... 比如如下
1.2345 1.2
1.3 2.3
2.123 2.4

如何变成下面的结果呢?
1.2 1.2
1.3 2.3
2.1 2.4

我使用:%s/\(\.\d\)\d\{1,}/\1/g 也就是把小数点后开始的第
一个数字以后的数字全部都删除,但是如果能把小数点后的数字换成
等长度的空格就好呢?其实有大量的这样的数据,我只是列举了一小
部分,所以这个只能使用正则表达式.

使用上面的命令得到的结果
但是会变成下面的结果:
1.2 1.2
1.3 2.3
2.1 2.4
这个问题就是:
这个还需要我自己去排版增加空格,真的很麻烦.不知道怎么样用正则表达式
把小数点后开始的第一个数字以后的数字全部都换成等长度的空格呢?
展开
 我来答
npmdc09
2011-03-06 · TA获得超过742个赞
知道小有建树答主
回答量:600
采纳率:0%
帮助的人:0
展开全部
个或多个空格
\zs 从此开始匹配 :h \zs
\s 一个空格
即:将跟在多个空格后的一个空格删去

%s/\s\+\zs\s\//g
加一个\可以删多个空格。n代表空格个数
追问
我试验了你的%s/\s\+\zs\s\//g 不行呀,而且我觉得你还多余了一个\   , 最后一个\是多余的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
achillowy
2011-03-08 · TA获得超过304个赞
知道小有建树答主
回答量:143
采纳率:100%
帮助的人:64.1万
展开全部
你那个不好用

用我的吧

%s/\.\d\zs\d*\s*/\t\t/g

将后面的数字和空格换成\t\t
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-14
展开全部
用个sed 也行,
sed -i -e 's/^\([0-9].[0-9]\)[0-9]* */\1 /' +filename
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式