使用vim regexp清除文件中的前导零

高塔姆

我有一个包含16位十六进制数字的文件。数字就像0000, fa01, 00f1,0001等。我想删除前导的0,以便我只剩下数字,例如0000应该更改为just 00001应该更改为,1并且0应该保持不变。

我正在尝试这样的正则表达式%s/^0\+\(0$\)\@!//如果有这样的数字,这将使行空白000关于如何修复此regrexp有任何建议吗?

亚历克西斯·威尔克(Alexis Wilke)

大概是这样的:

:0,$ s/0\+\([0-9a-f]\)/\1/

任意数量的零,但至少保留一位数字...如果没有该g标志,则每行最多执行一次。

当然,如果您的十六进制中有大写字母,也请使用AF。


更新:

\(0$\)\@!说就行了匹配最后一个零,然后否定该使它(希望)。

但是,仔细查看表达式,在中取零0\+,然后0$返回false并取反\@!因此,这是一个匹配。因此,我认为您的表达式可以正常工作,但所有零表达式除外。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章