我正在尝试解析一些文本,以确定它是否是一个链接。这是我的代码:
smatch m;
regex e("http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+");
bool match = regex_search(proto->message, m, e);
if(match == true) {
chan->Say("Matched link");
}
我得到的错误是:
/main.cpp|26|error: no matching function for call to ‘regex_search(char [1024], boost::smatch&, boost::regex&)’|
当我从regex_search
中取出m时,它会起作用并返回boolean
,但我想知道实际匹配是什么。
答案 0 :(得分:1)
Boost的regex_search没有定义您尝试使用的签名。在任何重载都没有boost :: smatch第二个参数。实际上,根本没有使用smatch。请参阅docs,特别是页面底部的示例。