[英]Notepad++ Find and Replace with Regex
這是我的編碼:
alpha = ["first", 55, 28]
beta = ["second", 89, 09]
gamma = ["third", 99, 40]
這是我的預期結果:
first", 55, 28]
second", 89, 09]
third", 99, 40]
我試過用空替換^.*?"
的正則表達式。但為什么我這樣做^.*?"
, 55, 28]
, 89, 09]
, 99, 40]
查找並替換為^.*?\\["
輸入
alpha = ["first", 55, 28]
beta = ["second", 89, 09]
gamma = ["third", 99, 40]
結果
first", 55, 28]
second", 89, 09]
third", 99, 40]
^.*?"
的問題在於它正在逐個替換所有內容
你是從這個內容開始的
alpha = ["first", 55, 28] beta = ["second", 89, 09] gamma = ["third", 99, 40]
在第一次替換(如預期)后,內容變為此,
first", 55, 28] beta = ["second", 89, 09] gamma = ["third", 99, 40]
現在,在下一次替換中,光標仍然在行的開頭。 請注意,還有一個雙引號"
在這一行(只是文本后first
),因此正則表達式是再次匹配,所以它會再次在第一雙引號替換之前的一切
, 55, 28] beta = ["second", 89, 09] gamma = ["third", 99, 40]
當您以這種方式繼續時,您將獲得輸出:
, 55, 28] , 89, 09] , 99, 40]
所以使用^.*?\\["
而不是^.*?"
編輯
如果您的父數組中有數組,那么您可以使用^.*?\\=\\s*\\[\\s*"
。
這個正則表達式也將處理空白字符。
輸入
alpha = ["first", 55, 28]
beta = ["second", 89, 09]
gamma = ["third", 99, 40]
delta = ["fourth", ["55"], 28]
更換后
first", 55, 28]
second", 89, 09]
third", 99, 40]
fourth", ["55"], 28]
你可以試試這個.*=\\s?\\[
。 當然所有設置為@TimBiegeleisen都顯示出來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.