我在 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的人可以看看这个我将不胜感激。
编辑:感谢Dingo,它工作得很好。
我遇到的另一个问题是结果排在第六位 - “f”。
我编辑了上面的代码,因此您可以根据需要复制/粘贴。