正则表达式找到C++元素?

MOn*_*DaR 1 c++ regex grammar

我正在为ANSI C++的元素寻找一些预定义的正则表达式.

我想创建的程序,这需要headerfile(具有包括命名空间,类等)作为输入,并与发现的类名列表返回,方法,属性等

它很难谷歌类似的东西,我总是最后的如何在C使用的正则表达式++教程.也许我只是在谷歌搜索错误的条款?也许有人已经找到/使用/创建了这样的正则表达式.

Jar*_*Par 7

这种类型的操作不能与正则表达式一起使用.C++不是常规语言,因此无法使用正则表达式进行可靠的解析.这里最安全的方法是在这里使用实际的解析器来定位C++元素.

如果100%正确性不是目标,那么正则表达式将起作用,因为它可以精心设计以捕获代码库中的大多数情况.最简单的例子如下

class\s+[a-z]\w+
Run Code Online (Sandbox Code Playgroud)

但是它会将以下内容错误地匹配为类

  • 前瞻性声明
  • 任何字符串文字,文字如"class foo"
  • 模板参数
  • 等......


boa*_*der 5

你可能会发现ctags的代码很方便.它将解析代码并打破用于emacs和其他程序的符号.事实上,它可能只是做你想要做的所有工作.