我有很多行一些Python代碼類似的行的其餘部分:正則表達式搜索和替換,包括括號
print "some text" + variables + "more text and special characters .. etc"
我想修改該把一切印刷後的括號內,就像這樣:
print ("some text" + variables + "more text and special characters .. etc")
如何在vim中使用正則表達式來做到這一點?
我有很多行一些Python代碼類似的行的其餘部分:正則表達式搜索和替換,包括括號
print "some text" + variables + "more text and special characters .. etc"
我想修改該把一切印刷後的括號內,就像這樣:
print ("some text" + variables + "more text and special characters .. etc")
如何在vim中使用正則表達式來做到這一點?
使用此替代:
%s/print \(.*$\)/print (\1)
\(.*$\)
匹配一切都交給了線的末端,並使用轉義的括號捕獲它在一組。替換包括使用\1
的該組,其中包含文字括號。
:%s/print \(.*\)/print(\1)/c
或者如果你直觀地選擇多行
:'<,'>s/print \(.*\)/print(\1)/c
%
- 每行
'<,'>
- 選擇線路
s
- 替代
c
- 確認 - 告訴你什麼是匹配你轉換
前 print \(.*\)
- 完全匹配打印後跟一個空格N組的一切\(
和\)
print(\1)
之間 - 用打印代替(<第一場比賽>)
Vim有一些正則表達式規則的功能,你可以做:help substitute
或:help regex
,看看它們是什麼。
以下鏈接可能對您有所幫助! –
2012-08-04 15:22:33