我需要解析作爲REST Web服務的一部分的「路由器」的URL的路徑部分。我正在使用PION庫來處理HTTP請求。這個庫似乎沒有任何功能來檢索URL路徑的一部分 - 或者看起來如此。我無法找到另一個這樣做的庫。例如,http://www.w3.org/Library/src/HTParse.c未給出部分路徑。如何解析使用C++的向量的路徑
是否有這樣做的更快,更可靠的方法:
std::vector<std::string> parsePath(std::string path)
{
std::string delimiter = "/";
std::string part = "";
std::size_t firstPos = 0;
std::size_t secondPos = 0;
std::vector<std::string> parts;
while (firstPos != std::string::npos)
{
firstPos = path.find(delimiter, firstPos);
secondPos = path.find(delimiter, firstPos + 1);
part = path.substr(firstPos + 1, (secondPos - 1) - firstPos);
if (part != "") parts.push_back(part);
firstPos = secondPos;
}
return parts;
}
也許[this](http://stackoverflow.com/q/2616011/777186)有幫助。建議的方法不會像這樣返回「vector」,但如果需要轉換爲「vector」應該不困難。 – jogojapan 2012-04-11 03:01:48
相關:http://stackoverflow.com/questions/2616011/easy-way-to-parse-a-url-in-c-cross-platform – HostileFork 2012-04-11 03:02:45
是的,我看到了,但他們正在解析一個URL。所以他們想要推導出各種參數。我只想分開路徑,這樣我就可以分別讀取每一條路徑並推斷路線。 – 2012-04-11 04:15:03