我需要更換用vim的下一個字符串或sed的:如何用正則表達式和vim替換?
[words with space and some caracter like _]
到
['words with space and some caracter like _']
只
我需要添加[ '富']用'
我這個嘗試vim(但是,不起作用):
:%s/[[a-z]\+]/'&'/g
我需要更換用vim的下一個字符串或sed的:如何用正則表達式和vim替換?
[words with space and some caracter like _]
到
['words with space and some caracter like _']
只
我需要添加[ '富']用'
我這個嘗試vim(但是,不起作用):
:%s/[[a-z]\+]/'&'/g
你需要躲避支架元字符
:%s/[\[a-z\]\+]/'&'
一般情況下,我發現它的幫助,以確保您有視選配合適的文本,然後做替換
:set hlsearch
:set incsearch
# make sure your matching the right text
/text to match/
# paste from the register named "/" which holds the expression you just perfected
:%s/<control+r><slash>/foo
試試這個:%s/\(\(\w\+\)\(\s\+\)\)\+_/'&'/gc
說明: 命令的一般語法是:範圍S /圖案/串/ GC
:激活命令模式
%指定的範圍內,這意味着該文件
小號的整個文本短於第一和第二/之間替代
一切應用命令定義的圖案
\(和\)用於將圖案的組份
\ W是元字符,它匹配字CHARAC叔
\ +是量詞,和匹配1或多個正好
\(\ W \ + \)基的圖案的上述兩個部分
第二和第三/之間的一切是指文本將替換匹配的文本
&是背參考,它指的是由圖案匹配整個文本
克手段替換所有出現
Ç將提示用戶確認每個替換
\用於轉義字符\ W,\ S,\ + \(和\),這意味着以下\字符具有特殊的含義。
試試這個在vim
%s/\[\(.\{-}\)\]/\['\1'\]/g
你可以在'\ ['\ 1'\]'中使用'['和']'而不用反斜槓' –
這個工作在sed
。這很像在vim
。
sed "s/\[\([^]]*\)\]/['\1']/g" input.txt
儘管此代碼可以回答這個問題,提供有關附加的上下文*爲什麼*和/或*如何*這個代碼回答了這個問題提高其長期價值。 –
@BenjaminW。修改了答案並加入瞭解釋,希望它能幫助社區 –
'[foo]'和'[]'怎麼樣?也許你還應該解釋爲什麼要使用反斜槓。 –