用于获取函数签名的 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"。
一旦我删除它,它就会匹配你的测试字符串。
我正在尝试在 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"。 一旦我删除它,它就会匹配你的测试字符串。