vim - 如何删除数字后的字符直到结尾
问题描述
我输入如下
1sum
2subtract
3multipy
4divide
...
预期输出:
1
2
3
4
...
我试过%s/[0-9].*//g
但它正在删除数字我也想保留数字..请帮助
解决方案
您正在匹配所有内容,包括数字本身。
完成您所追求的一个简单方法是使用\D
匹配第一个非数字字符,然后删除到行尾:
:%s/\D.*//
请注意,\D
这与除了[^0-9]
数字之外的任何字符相同,因此将插入符号添加到原始表达式中也可以:
:%s/[^0-9].*//
你不需要/g
在最后(即使它没有伤害),因为每行最多可以有一个匹配,因为匹配将一直消耗到行尾。