Regular-Expression
在vi中用正則表達式搜尋和替換?
我想用字元“x”出現在多行中的正則表達式替換一個字元串:
問題是用前面的 x 在 x 後面有一個整數替換單詞,例如在包含以下內容的文件中:
x44name xjanname x50name
例如:
:1,2s/x[0-9]name/num/g
我需要使用 sed 或其他命令來搜尋和替換單詞嗎?
出現以下錯誤:
E486: Pattern not found: x[0-9]name
如果你可以有任意數量的數字(包括 0),你應該這樣做
:%s/x[0-9]*name/num/g
如果總是兩個
:%s/x[0-9][0-9]name/num/g
當然你也可以使用 \d 代替
$$ 0-9 $$
:%s/x\d*name/num/g
%s
表示搜尋整個文件s
意味著只搜尋目前行g
表示給定行中的所有匹配項- 沒有 g 表示只替換每行的第一個匹配項
如果我理解正確,並且“num”是“x”之後的下一個數字,請注意:
:%s/x\([0-9]\)/\1/g