gpt4 book ai didi

c++ - 正则表达式添加匈牙利符号

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:54 25 4
gpt4 key购买 nike

我正在解析 .h.cpp 文件,我需要用它们的 Hungarian equivalents 查找/替换所有非匈牙利标记变量 . “啊,为什么?!”你问?我的雇主要求使用匈牙利符号,'nuff 说。

现在让我们只处理 int

鉴于任何这些情况......

int row;      // no hungarian prefix
int nrow(9); // incorrect capitalization
int number; // hmm...
int nnumber = getValue(); // uh oh!

它们应该改为:

int nRow;
int nRow(9); // obviously ctor args and assignments shouldn't change
int nNumber;
int nNumber = getValue();

理想情况下,我只希望对s/// 进行一次 单行调用。

对于额外的挑战,如果有人可以在使用 int 进行“类型检查”后更改此变量的所有实例,那将为您赢得一些加分。

这是我目前所拥有的:

s/(int\s+)(?!n)(\w+)/$1n\u$2/g;

虽然这与 int nrowint number 之类的东西不匹配。

提前致谢!

最佳答案

没有。

更明确地说,您正在尝试使用正则表达式编译程序。 This does not work that way .

例如,您的一行代码已经忘记了函数参数,并且它无法解析任何用户定义的类型(struct、enum)。更不用说 .cpp 建议 C++ 建议类。

此外,方法/函数/内联注释会怎样?

我的建议是在某处找到一个语法编译器并将 c++ 语法传递给它,这样对于每个定义,您都可以将值和类型写入文件。然后你就可以享受正则表达式的乐趣了。您也可以尝试在每次使用每个变量时都编写,以便稍后自动替换它们。

虽然比简单的正则表达式要复杂得多,但是那个简单的正则表达式会失败很多,以至于最后您将手动更改代码。

作为一个积极的方面,也许当你告诉你的老板钱币花了多少钱时,他可能会考虑得更好。

关于c++ - 正则表达式添加匈牙利符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com