У меня есть этот простой кусок кода на C ++:
int main(void)
{
string text = "http://www.amazon.com";
string a,b,c,d,e,f;
pcrecpp::RE re("^((\\w+):\\/\\/\\/?)?((\\w+):?(\\w+)?@)?([^\\/\\?:]+):?(\\d+)?(\\/?[^\\?#;\\|]+)?([;\\|])?([^\\?#]+)?\\??([^#]+)?#?(\\w*)");
if(re.PartialMatch(text, &a,&b,&c,&d,&e,&f))
{
std::cout << "match: " << f << "\n";
// should print "www.amazon.com"
}else{
std::cout << "no match. \n";
}
return 0;
}
Когда я запускаю это, он не находит соответствия.
Я почти уверен, что шаблон регулярных выражений правильный, а мой код - неправильный.
Если кто-то, знакомый с pcrecpp, может взглянуть на это, я буду благодарен.
EDIT:
Благодаря Dingo , он прекрасно работает.
другая проблема, с которой я столкнулся, заключается в том, что результат оказался на шестом месте - «f».
Я отредактировал код выше, чтобы вы могли копировать / вставлять, если хотите.