我刚开始使用 Boost::xpressive 并发现它是一个很棒的库...我浏览了文档并尝试使用 ! 运算符(零或一),但它不编译(VS2008)。
我想匹配一个可能以“sip:”开头也可能不以“sip:”开头的 sip 地址
#include <iostream>
#include <boost/xpressive/xpressive.hpp>
using namespace boost::xpressive;
using namespace std;
int main()
{
sregex re = !"sip:" >> *(_w | '.') >> '@' >> *(_w | '.');
smatch what;
for(;;)
{
string input;
cin >> input;
if(regex_match(input, what, re))
{
cout << "match!\n";
}
}
return 0;
}`