问题来自于将代码更新到使用初始化程序的 C++11。
So:
a = X(4);
b = X();
c = X( (1+2)*(3+4) );
void P : X(5) { foo(); }
Becomes
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};
有什么办法可以完成这个转变吗?
编辑:可能这个答案 https://stackoverflow.com/a/19863847/435129按住钥匙吗?或者this one https://stackoverflow.com/questions/26385984/recursive-pattern-in-regex?
编辑:抱歉,我的示例列表不完整。提前分类是很困难的,所以我只能不断修改问题,直到得到所有的边缘情况。我认为问题在于任何一种伎俩都不能依赖。
这是因为运算符 * 和 + 是贪婪的。但是,您可以通过使用表达式来强制惰性
X\((.*?)\);
这 ?符号强制执行惰性匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)