1

我正在尝试使用 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 并拥有所有 regex_error 标志,如 paren、complexity 等......在 catch 中,我知道它是 regex_paren 抛出的。我不知道如何解决它。

请帮我解决这个问题。

4

1 回答 1

0

一个测试正则表达式的好地方是 regex101.com 把你的表达式放在那里,它抱怨第一个?与“前面的令牌不可量化”。一旦我删除它,它就会匹配您的测试字符串。

于 2016-04-27T04:05:38.130 回答