我可能会问一个重复的问题,但我花了几个小时在谷歌上搜索,但无济于事!
我正在尝试从我正在处理的程序解析的一些 SIP URL 中提取字符串。这是代码的摘录。我正在传递sipUrl
,并且拥有所有权利,包括等:
static const boost::regex sipRegExp ("(sip:\\S+?@(?=\\S)[^>]+);");
boost::cmatch result;
boost::match_results<string::const_iterator> results;
boost::match_flag_type flags = boost::format_perl;
string newSipUrl;
cout << sipUrl << endl;
bool toggle = boost::regex_search(sipUrl, result, sipRegExp, flags);
if (toggle) {
cout << result[1].str() << endl;
newSipUrl = result[1].str();
}
cout << "new url: " << newSipUrl << endl;
我基本上是在尝试从or之sip:user@IP
类的字符串中提取,但是,我无法让它匹配!当我不使用前瞻来尝试删除最后一个尖括号时,它工作得很好,但从那时起它就无法匹配。"\"alex@192.168.1.2\"<sip:alex@192.168.1.2>;tag=fe310852"
"\"bob\"<sip:bob@foo.com>;"
在出门之前发布此信息,因此可能需要更多信息。如果有人能发现一些明显的东西,那将是一个很大的帮助!请随时指出我可能错过的链接!