Я очень плохо знаком с 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/".
}
и я получаю массу ошибок: «escape-последовательность нераспознанного символа»
Я взял это регулярное выражение из Javascript. Я не уверен, что смогу сделать это.
Какие типы регулярных выражений я могу использовать в Boost.regex, кроме Perl?
Есть ли какой-либо конвертер регулярных выражений? (потому что я конвертирую тонны кода из Javascript в c ++, и у меня есть еще несколько регулярных выражений).
Кстати, эта функция у меня в Javascript:
parseHostname: function(url)
{
m = /^((\w+):\/\/\/?)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#;\|]+)?([;\|])?([^\?#]+)?\??([^#]+)?#?(\w*)/.exec(url) || [];
return m[6];
},
Чтобы увидеть этот пример с PCRE и полным кодом - ссылка .