用于获取函数签名的 C++ 正则表达式

c++ regex for fetching function signature

我正在尝试在 C++ 中使用 regex_search 搜索函数签名。这是我正在使用的

std::smatch m;

std::regex e("?(unsigned|signed|const|inline)?\s?(bool|char|int|float|double|void|wchar_t|string)\s?[*]?(\w.*)[(](.*)[)]\s?{?$");

if(regex_search(xmlFileLine, m, e)) {

cout << xmlFileLine << endl;

}

在上面的代码中,'xmlFileLine'是getline中的一个字符串,读取输入文件的每一行。例如,我要匹配的字符串是 "int Testo::Fact(int n) {"

当我在 try 中执行上面的正则表达式并获得所有 regex_error 标志,如 paren、complexity 等等......在 catch 中,我知道它被抛出 regex_paren。我不知道如何解决它。

请帮我解决这个问题。

测试正则表达式的好地方是 regex101.com 把你的表情放在那里,它抱怨第一个?和 "Preceding token is not quantifiable"。 一旦我删除它,它就会匹配你的测试字符串。