我有一个文件,如下所示.
1 1 0 # 1
6 1 0 # 2
8 1 0 # 3
10 1 0 # 4
12 1 0 # 6
Run Code Online (Sandbox Code Playgroud)
如何将#0添加到所有数字,除了#后面的数字.我认为使用正则表达式不应该太难,但我的正则表达式知识太生锈了.
使用VIM:
:%s/\v(#.*)@<!\d+/&.0/g
Run Code Online (Sandbox Code Playgroud)
说明:\v=非常神奇(参见参考资料help \v),@<!如果前面的原子在后面的内容之前不匹配,则匹配零宽度(参见参考资料help \@<!).该模式的其余部分将使用相同的字符串替换1个或更多数字的字符串.0.
如果您的号码后面#没有空格,您可以使用:
:g/\([0-9]\+\) /s//\1.0 /g
Run Code Online (Sandbox Code Playgroud)
使用()创建组可以\D在替换文本中引用,其中D组是搜索字符串中的位置.这会给你:
1.0 1.0 0.0 # 1
6.0 1.0 0.0 # 2
8.0 1.0 0.0 # 3
10.0 1.0 0.0 # 4
12.0 1.0 0.0 # 6
Run Code Online (Sandbox Code Playgroud)
如果他们这样做有他们之后空格(你似乎有),你会得到:
1.0 1.0 0.0 # 1.0
6.0 1.0 0.0 # 2.0
8.0 1.0 0.0 # 3.0
10.0 1.0 0.0 # 4.0
12.0 1.0 0.0 # 6.0
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以这样做:
:g/\.0\( *\)$/s//\1/g
Run Code Online (Sandbox Code Playgroud)
解决它.
| 归档时间: |
|
| 查看次数: |
8661 次 |
| 最近记录: |