我有一个包含16位十六进制数字的文件。数字就像0000, fa01, 00f1,0001
等。我想删除前导的0,以便我只剩下数字,例如0000
应该更改为just 0
,0001
应该更改为,1
并且0
应该保持不变。
我正在尝试这样的正则表达式%s/^0\+\(0$\)\@!//
。如果有这样的数字,这将使行空白000
。关于如何修复此regrexp有任何建议吗?
大概是这样的:
:0,$ s/0\+\([0-9a-f]\)/\1/
任意数量的零,但至少保留一位数字...如果没有该g
标志,则每行最多执行一次。
当然,如果您的十六进制中有大写字母,也请使用AF。
更新:
该\(0$\)\@!
说就行了匹配最后一个零,然后否定该使它假(希望)。
但是,仔细查看表达式,在中取零0\+
,然后0$
返回false并取反\@!
!因此,这是一个匹配。因此,我认为您的表达式可以正常工作,但所有零表达式除外。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句