使用regex_search

时间:2013-12-08 19:10:13

标签: c++ boost

我正在尝试解析一些文本,以确定它是否是一个链接。这是我的代码:

    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,但我想知道实际匹配是什么。

1 个答案:

答案 0 :(得分:1)

Boost的regex_search没有定义您尝试使用的签名。在任何重载都没有boost :: smatch第二个参数。实际上,根本没有使用smatch。请参阅docs,特别是页面底部的示例。