I'm using a regex to separate the fields of an HTTP request:
GET /index.asp?param1=hello¶m2=128 HTTP/1.1
This way:
smatch m;
try
{
regex re1("(GET|POST) (.+) HTTP");
regex_search(query, m, re1);
}
catch (regex_error e)
{
printf("Regex 1 Error: %d\n", e.code());
}
string method = m[1];
string path = m[2];
try
{
regex re2("/(.+)?\\?(.+)?");
if (regex_search(path, m, re2))
{
document = m[1];
querystring = m[2];
}
}
catch (regex_error e)
{
printf("Regex 2 Error: %d\n", e.code());
}
Unfortunately this code works in MSVC but not with GCC 4.8.2 (which I have on Ubuntu Server 14.04). Can you suggest a different method of splitting that string using maybe normal std::string operators?
I don't know how to split the URL in different elements since the query string separator '?' may or may not be present in the string.
#gcc --versionit says it's 4.8.2 but if I doapt search gcc-4.9I getgcc-4.9-base/trusty,now 4.9-20140406-0ubuntu1 armhf [installed] GCC, the GNU Compiler Collection (base package)so I don't know how to update my gcc.