【发布时间】:2014-11-21 00:49:13
【问题描述】:
问题来自于将代码更新到使用初始化程序的 C++11。
所以:
a = X(4);
b = X();
c = X( (1+2)*(3+4) );
void P : X(5) { foo(); }
变成
a = X{4};
b = X{};
c = X{ (1+2)*(3+4) };
void P : X{5} { foo(); }
我的 IDE (XCode) 支持 RegEx 搜索和替换。
我试过了:
X\((.*)\) -> X{$1}
但它失败了:
X(foo); Y(bar); -> X{foo); Y(bar};
有什么方法可以完成这个转换吗?
编辑:this answer 可以持有钥匙吗?还是this one?
编辑:抱歉,我的示例列表不完整。提前分类将很困难,所以我只需要不断修改问题,直到我得到所有的边缘情况。我认为问题在于不能依赖任何技巧。
【问题讨论】:
-
由于平衡括号的语言不规则,我担心如果不“依赖”一个技巧或另一个,你的任务将无法解决。
-
XCode 的正则表达式(可能使用 NSRegularExpression 和 ICU 的正则表达式)没有足够的能力来进行括号平衡。您应该使用另一个文本编辑器(例如 Sublime Text)进行替换。
标签: regex xcode recursion replace brackets