Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Boost Regex查找主机/域名 我对C++和Boost非常陌生。 我正在尝试获取给定url的主机名:_Javascript_C++_Regex_Boost - Fatal编程技术网

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正则表达式兼容