2012-01-04 40 views
2

在Vim中,我已經打開了文件,基本結構如下:是否有一個正則表達式在VIM中替換前導零(除了最後一個)和冒號nn:nn:nn.nn?

3677137 00:01:47.04 
666239 00:12:57.86 
4346  00:00:01.77 
418 00:00:00.82 
6564  00:00:01.34 
1800  00:00:23.93 
29208 00:14:23.32 

那就是:一個數字,後跟一個標籤(也空白,我不認爲它很重要),然後被表達這表示在HH:MM:SS.cs格式中已經過了一段時間。 (CS代表百分之一秒)。

現在,我想替換前導零和冒號,發現下面的正則表達式來做到這一點:

:%s/\s\@<=[0:]\+// 

導致

3677137 1:47.04 
666239 12:57.86 
4346  1.77 
418 .82 
6564  1.34 
1800  23.93 
29208 14:23.32 

這不是壞的,我可以可能與此生活在一起。但是,如果有一個簡單的正則表達式在.前至少有一個數字,我可能會更加高興。也就是說,如果第四讀取線的

418 0.82 

代替

418 .82 

那麼,有沒有,做一個正則表達式?

+0

我建議:%s/\ s \ @<= [0:] \ + \。\ @!// – kev 2012-01-04 08:47:21

回答

2

我建議:

%s/\s\zs[0:]*\ze\d// 

我試圖在你的榜樣,它似乎你想要做什麼。

1

不是最優雅,但

:%s/\s00:0\?0\?:\?0\?//g 
相關問題