描述:
greta的基本使用已经掌握,但是我想知道他的复杂使用
网络只给出了一个简单的例子,我想知道他其他具体函数的使用方式
简单的程序
CString a = "<meta http-equiv=\"refresh\" c />
string str=a.GetBuffer(0);
match_results results;
rpattern pat("url[:=](\/)?([^>#\" ]*)");
match_results::backref_type br = pat.match( str.c_str(), results );
if( br.matched )
{
cout << "match success!" << endl;
cout << "price: " << br << endl;
} else
{
cout << "match failed!" << endl;
}
这个例子大家发现了吗??我只能得到一个结果,如果我想实现 一个字符串中找到多个结果,就不知道怎么使用了,我想应该不难,但是我找不到greta的使用文档。。
希望大家帮帮我
!谢谢!
解决方案1:
应该这样
string str("The book cost $12.34 baioodu.hehe");
match_results results;
rpattern pat("(oo)", GLOBAL | ALLBACKREFS );
int igroups = pat.cgroups();
match_results::backref_type br = pat.match( str.c_str(), results);
if( br.matched )
{
for(int i=0;i<results.cbackrefs();i++)
{
if(i%igroups == 0)
{
printf("%d-%s\n",i,results.backref(i).str().c_str());
}
}
}
else
{
cout << "match failed!" << endl;
}