这是我的编码:
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]
答案 0 :(得分:9)
查找并替换为
^.*?\["
<强>输入强>
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
之后),因此RegEx再次匹配,因此它将再次替换所有内容
第一个双引号
, 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]
答案 1 :(得分:6)
使用此正则表达式:
<exec program="${environment::get-variable('WinDir')}\system32\cmd">
<arg value="/c "rmdir /q /s ${Build.BuildFolder}\WebApplication\node_modules"" />
</exec>
括号中的数量称为捕获组,因为将为运行替换操作的文件中的每一行捕获其内容。您希望保留此捕获的材料,因此请在对话框中使用^[^"]*"(.*)$
替换。
以下是如何使用它的截屏:
答案 2 :(得分:1)
你可以尝试这个.*=\s?\[
。当然所有设置为@TimBiegeleisen都显示出来。