Javascript Boost Regex查找主机/域名 我对C++和Boost非常陌生。 我正在尝试获取给定url的主机名:
这就是我现在拥有的:Javascript Boost Regex查找主机/域名 我对C++和Boost非常陌生。 我正在尝试获取给定url的主机名:,javascript,c++,regex,boost,Javascript,C++,Regex,Boost,这就是我现在拥有的: int main() { string url = "http://www.amazon.com/gp/product/blabla"; //Regular Expression from Javascript. boost::regex ex("/^((\w+):\/\/\/?)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#;\|]+)?([;\|])?([^\?#]+)?\??([^#]+)?#?(\w*)/")
int main()
{
string url = "http://www.amazon.com/gp/product/blabla";
//Regular Expression from Javascript.
boost::regex ex("/^((\w+):\/\/\/?)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\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+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#;\|]+)?([;\|])?([^\?#]+)?\??([^#]+)?#?(\w*)/.exec(url) || [];
return m[6];
},
要使用PCRE和完整代码查看此示例-。由于反斜杠(\)是C(&C++)字符串常量中的转义字符,因此需要对其进行转义
i、 e将\的所有实例替换为\\
哈哈,我对这篇文章也有同样的问题!所有的反斜杠都消失了,因为我忘了逃脱它们
选中此项查看Boost中可用的不同正则表达式类型。它有一个只映射到普通的JavaScript类型,这意味着默认值与JavaScript正则表达式兼容