簡體   English   中英

使用正則表達式Vim將特定位置的字符替換為另一個字符

[英]Replace character in specific position with another character using regular expression, Vim

仍然是正則表達式newb,但我仍在學習。 我想做的是使用Vim和正則表達式替換此處的粗體數字“ 1”。 但是要注意的是,它不僅必須針對此行執行此操作,而且還必須針對此行中的每一行執行此操作。 因此,換句話說,這個“ 1”恰好在我的平面文件的第29個空格中。 我想將其更改為“ 2”。 有人可以幫我嗎? 先感謝您。

2017033112xxxxxxxxx194205252 1 2007

%s/\%29c[0-9]/2/g

它將在第29列中找到任何數字(從0到9)並將其替換為2。

%s/^\(.\{28}\)1/\12/

這將保留每行的前28個字符,並將第29位的“ 1”替換為“ 2”

使用比賽開始 \\zs將第29位的1更改為2

%s/^.\{28\}\zs1/2

之前

123456789012345678901234567890123
2017033112xxxxxxxxx19420525212007
2017033112xxxxxxxxx19420525292006
2017033112xxxxxxxxx19420525212005

123456789012345678901234567890123
2017033112xxxxxxxxx19420525222007
2017033112xxxxxxxxx19420525292006
2017033112xxxxxxxxx19420525222005

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM