kev*_*818 0 c++ regex perl hungarian-notation
我正在解析.h和.cpp文件,我需要用匈牙利语等价物查找/替换所有非匈牙利语标注变量."啊,为什么?!" 你问?我的雇主要求使用匈牙利语,"努夫说.
我们ints现在就来处理吧.
鉴于任何这些情况......
int row; // no hungarian prefix
int nrow(9); // incorrect capitalization
int number; // hmm...
int nnumber = getValue(); // uh oh!
Run Code Online (Sandbox Code Playgroud)
它们应该改为:
int nRow;
int nRow(9); // obviously ctor args and assignments shouldn't change
int nNumber;
int nNumber = getValue();
Run Code Online (Sandbox Code Playgroud)
我正在为一个s///理想的单线电话进行拍摄.
对于增加的挑战,如果有人可以在"类型检查"之后获得更改此变量的所有实例int,那将为您赢得一些布朗尼点数.
这是我到目前为止所拥有的:
s/(int\s+)(?!n)(\w+)/$1n\u$2/g;
Run Code Online (Sandbox Code Playgroud)
这与之类似int nrow或不相符int number.
提前致谢!
没有.
更明确地说,您正在尝试使用正则表达式编译程序.这不起作用.
例如,您的单行已经忘记了函数参数,并且它无法解析任何用户定义的类型(struct,enum).更不用说.cpp建议C++建议类.
此外,方法/函数/内联注释会发生什么?
我的建议是找到一个语法编译器并将其传递给c ++语法,因此对于每个定义,您都会获得写入文件的值和类型.然后你可以使用它获得正则表达式的乐趣.每次使用每个变量时,您都可以尝试编写,以便以后自动替换它们.
然而,一个简单的正则表达式要复杂得多,但是那个简单的正则表达式会失败太多,以至于你最终会手动更改代码.
作为一个积极的方面,也许当你告诉你的老板chane花多少钱时,他可能会更好地思考它.