提取主機名我有這樣的一段簡單的代碼在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的人都可以看看這個不勝感激。
編輯: 感謝Dingo,它工作的很好。
我遇到的另一個問題是結果在第六位 - 「f」。
我編輯了上面的代碼,以便您可以根據需要複製/粘貼。