
Thanks for Your reply
im closer but ther's a diffrent
if i do as You say like this
std::string stmp = "PORT (127,0,0,1,6,56)\r";
boost::regex
regex_ip(".+\\(?([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,})\\)?.*");
std::string sip = boost::regex_replace(stmp, regex_ip, "$1.$2.$3.$4",
boost::format_all);
the output is
7.0.0.1
but if i have the
std::string stmp = "PORT (127,0,0,1,6,56)\r";
boost::regex
regex_ip(".+\\(([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,})\\).*");
std::string sip = boost::regex_replace(stmp, regex_ip, "$1.$2.$3.$4",
boost::format_all);
the output is
127.0.0.1
there is something i miss
/Christer
"John Maddock"
No application crash, the only changes is in std::string stmp = "PORT (127,0,0,1,6,56)\r"; this works with boost::regex regex_ip(".+\\(([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,})\\).*"); std::string sip = boost::regex_replace(stmp, regex_ip, "$1.$2.$3.$4", out 127.0.0.1 to std::string stmp = "PORT 127,0,0,1,6,56\r"; this not. out PORT (127,0,0,1,6,56) if i change to boost::regex regex_ip(".+\([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,}),([0-9]{1,})\.*"); the out is 7.0.0.1
I must change something in the regex_ip but i cant figure it out.
~~~~~~~~~~~~~~
You're regular expression has literal ( and ) in it - the \\( and \\) parts, so.... not surprisingly these will only match if the text has literal ( and )'s. So either remove those from the expression or make them optional by using \\(? and \\)?.
HTH, John.