[英]How to Substitute or Replace All Characters but NOT those inside quotes? (Google Sheets)
[英]How to substitute all the contents inside double quotes in vim using %s?
我有一個帶有用戶名和密碼的配置文件,如下所示:
username = "someuser"; password = "blabla";
username = "anotheruser"; password = "tralala";
有時配置不是非常有條理,因此我們可以將符號“ =”設置為更近或帶有雙倍空格,例如
username= "foo"
因此,在vim中,我如何用一些神奇的regex表達式將所有內容替換為用戶名和密碼,以便使所有內容類似:
username = "no_user"; password = "no_password";
請注意,我的主要目標是替換雙引號內的內容。 該組織只是一個加號。 謝謝。
嘗試這樣做:
:%s:username *= *"[^"]\+":username = "no_user":g
:%s:password *= *"[^"]\+":password = "no_passwd":g
您可以使用捕獲組輕松進行組織:
:%s/\(username\|password\)\s*=\s*\("[^"]*"\)/\1 = \2/g
如果您只想更改值,最好通過2個單獨的替換來完成。
:%s/username\zs\s*=\s*"[^"]*"/ = "no_user"
:%s/password\zs\s*=\s*"[^"]*"/ = "no_password"
注意我正在使用\\zs
在標簽后開始匹配,以避免使用更長的命令。
有關更多幫助,請參見:
:h :s
:h /\(
:h /\zs
:h pattern
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.