我正在尝试使用 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 抛出的。我不知道如何解决它。
请帮我解决这个问题。
最佳答案
测试正则表达式的好地方是 正则表达式101.com 把你的表情放在那里,它提示第一个?和 “前面的 token 不可量化”。 一旦我删除它,它就会匹配您的测试字符串。
关于用于获取函数签名的 C++ 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36879334/