gpt4 book ai didi

javascript - Boost Regex 查找主机/域名

转载 作者:行者123 更新时间:2023-11-28 08:30:34 25 4
gpt4 key购买 nike

我是 c++ 和 boost 的新手。我正在尝试获取给定 url 的主机名:

这是我现在拥有的:

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 的示例和完整代码 - link .

最佳答案

由于反斜杠 (\) 在 C (& C++) 字符串常量中是一个转义字符,因此您需要对其进行转义。

即用\\替换\的所有实例

哈哈。我和这篇文章有同样的问题!所有的反斜杠都消失了,因为我忘了转义它们。

检查这个page查看 Boost 中可用的不同正则表达式类型。它有一个仅映射到正常的 JavaScript 类型,这意味着默认值与 JavaScript 正则表达式兼容。

关于javascript - Boost Regex 查找主机/域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com