首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配非虚C++方法声明的正则表达式模式

匹配非虚C++方法声明的正则表达式模式
EN

Stack Overflow用户
提问于 2012-04-28 01:11:10
回答 1查看 345关注 0票数 1

我正在尝试寻找一个正则表达式来匹配C++头文件中不是虚拟的方法声明。我让它在大多数情况下都能工作,但是如果在virtual之后有一个换行符,并且方法声明在下一行,那么我的正则表达式将匹配它,这不是我想要的。因此,我需要正则表达式引擎回溯到前一行并检查virtual关键字。下面是一个基本的例子:

源文件片段:

代码语言:javascript
复制
void Process(char* name, int val); // Should match, this one works
virtual char* GetName(); // Should not match since it is virtual, this one works
virtual
        flag_type SetValue(uint8 resourceIndex, char* name); // Should not match, but this line matches since virtual is on previous line!

下面是我的正则表达式:(^\s*\w+\**(?<!virtual)\s+\w+\s*\()(\s*\w+\**\s+\**\w+,?)*\s*\)\s*;

EN

回答 1

Stack Overflow用户

发布于 2012-05-01 05:46:51

我发现了一些适合我的东西,包括Emanuele指出的缺陷(尽管它也会在注释行中匹配):\b(?<!virtual\s+)\w+\**\s+\w+\s*\((\s*\w+\**\s+\**\w+,?)*\s*\)\s*;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10354986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档