在大括号之间搜索和替换文本(VS代码)

时间:2018-01-06 16:45:57

标签: regex visual-studio select search replace

我一直在寻找如何在VS Code中替换括号之间的文本。这是我要替换内容的示例或文件:

capital = 267
oob = "AFG_1936"
set_technology = {
 CAS1 = 1
 CAS2 = 1
 CAS3 = 1
 CAS4 = 1
 radio_detection = 1
 rocket_engines = 1
 sp_rocket1 = 1
 sp_rocket2 = 1
 strategic_bomber1 = 1
 strategic_bomber2 = 1
 strategic_bomber3 = 1
 suicide_craft = 1
 synth_oil_experiments = 1
 tactical_bomber1 = 1
 tactical_bomber2 = 1
 tactical_bomber3 = 1
 tank_landing_craft = 1
 transport = 1
}
add_ideas = {
    population_growth_rapid
}
set_convoys = 200
...

我想替换或者至少选择" set_technology = {"及其结束括号。 我试图搜索" {。}"或类似" {。+ [^ \ n] +}"但似乎没有任何工作...... 如有必要,我可以切换到Visual Studio 2017

提前致谢, Stuffi

1 个答案:

答案 0 :(得分:0)

这个正则表达式是解决方案:

set_technology = {[^}]*?}

应用于您的文字,它会给出一个匹配项。它有三个部分:

1. set_technology = {

2.[^}]*?:除}以外的所有字符尽可能少 个字符。 (lazy quantifier

3. }

我们需要使用lazy quantifier*?”而不是greedy quantifier*”。 lazy quantifier尝试捕获尽可能少的字符。我们希望在第一个}之后停止捕获文本而不是最后一个}

如果我们使用greedy quantifier,则匹配将包含:

set_technology = {
...
}
add_ideas = {
...
}

lazy quantifier只包含:

set_technology = {
...
}