У меня есть этот простой кусок кода в C++:PCRECPP (PCRE) извлечь имя хоста из задачи URL кода
int main(void)
{
string text = "http://www.amazon.com";
string a,b,c,d,e,f;
pcrecpp::RE re("^((\\w+):\\/\\/\\/?)?((\\w+):?(\\w+)[email protected])?([^\\/\\?:]+):?(\\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».
Я отредактировал код выше, чтобы вы могли скопировать/вставить, если хотите.