[英]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.