0
我很新,對C++和boost。 我試圖讓一個給定的URL的主機名:Boost正則表達式查找主機/域名
這是我現在有:
int main()
{
string url = "http://www.amazon.com/gp/product/blabla";
//Regular Expression from Javascript.
boost::regex ex("/^((\w+):\/\/\/?)?((\w+):?(\w+)[email protected])?([^\/\?:]+):?(\d+)?(\/?[^\?#;\|]+)?([;\|])?([^\?#]+)?\??([^#]+)?#?(\w*)/");
boost::regex_search(url, ex);
// I want it to get "http://www.amazon.com/".
}
,我得到噸的錯誤:「無法識別的字符轉義序列」 我把這個來自Javascript的正則表達式。我不確定我能做到這一點。
除了Perl,我可以在'Boost.regex'中使用的正則表達式類型是什麼? 是否有任何一種正則表達式轉換器? (因爲我將大量代碼從Javascript轉換爲C++,並且我有更多的正則表達式)。
順便說一句,這是我在Javascript功能:
parseHostname: function(url)
{
m = /^((\w+):\/\/\/?)?((\w+):?(\w+)[email protected])?([^\/\?:]+):?(\d+)?(\/?[^\?#;\|]+)?([;\|])?([^\?#]+)?\??([^#]+)?#?(\w*)/.exec(url) || [];
return m[6];
},
要查看與PCRE和完整的代碼這個例子 - link。