正则表达式#将方括号替换为大括号,但如果文本采用此格式,则不要替换[text] [text2]

时间:2013-12-01 20:24:38

标签: regex notepad++

首先,对不起,如果标题是“搞砸了”而且你真的不能理解那么好......我对标题不是那么好。

我正在尝试进行正则表达式匹配(第一次使用复杂的正则表达式),替换[with {和] with}但我有一个问题..我的脚本是这样的

 new asd[MAX_PLAYERS];

 asd[player] = 1;
 if(asd[player] >= 1)

 other[player][index] = 1;

我试图只替换只有一个[text]匹配的变量,这样上面的代码就会变成

 new asd{MAX_PLAYERS};

 asd{player} = 1;
 if(asd{player} >= 1)

 other[player][index] = 1;

我尝试使用[[a-zA-Z _] *],但它匹配括号中的所有内容,如果我的脚本不是25k行,那将会很好。 我尝试使用[[a-zA-Z _] *] | [[a-zA-Z _] *];哪种有效,但没有,因为它仍然匹配[索引] 而且我也尝试了一些不符合[前面的线条]的东西,但是我失败了。

BTW - 我正在使用Notepad ++

2 个答案:

答案 0 :(得分:1)

Lookarounds是一种方法。

模式:(?<!\])\[(\w+)](?!\[)

替换:{$1}

答案 1 :(得分:1)

这是一个可以在regex101.com上运行的强大解决方案,但不确定notepad ++是否可以处理它。

/(?:\[[^]]+\]){2}\K|\[([^\]]+)\]/g

替换为{\1}

http://regex101.com/r/wE5mG5