使用vim正则表达式对数字进行注释

时间:2016-02-01 19:25:38

标签: regex vim vi regex-lookarounds

在阅读本书" 掌握正则表达式"时,我试图解决" commafication"使用vim编辑器的数字。

如何从以下文件中转换文件中的数字:

  

1234567891234

  

1,234,567,891,234

(这是一个数字的命名)

使用环视有一个解决方案,但我试图在不使用它的情况下解决它。不幸的是,我仍然没有提出正确的命令,这就是我在这里的原因。 这是我的命令,直到现在:

:%s/\(\d\)\(\(\d\d\d\)\+\)/\1,\2/gc

产生:

  

1,234567891234

问题在于\+需要最长链。我怎样才能为链的其余部分重复这一点?

1 个答案:

答案 0 :(得分:1)

vim中,您可以使用此正则表达式在每3个数字后插入逗号:

:%s/\v(^)@!((\d{3})+$)@=/,/g

这假设每个数字都在一个单独的行上。

如果每行有多个号码,请使用:

:%s/\v(<)@!((\d{3})+>)@=/,/g

Here is RegEx Demo

PS:在VIM - Vi IMproved 7.2VIM - Vi IMproved 7.4

上进行了测试