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。