c++ string split function
阿新 • • 發佈:2020-07-22
#include <string> #include <vector> #include <regex> struct SplitListItem { std::string key; std::string value; }; std::vector<SplitListItem> splitString(std::string origenString, std::regex pattern) { std::smatch result; std::string::const_iterator iterStart = origenString.begin(); std::string::const_iterator iterEnd = origenString.end(); std::vector<std::string> splitList = {}; std::vector<SplitListItem> resultSplitList = {}; while (regex_search(iterStart, iterEnd, result, pattern)) { splitList.emplace_back(iterStart, result[0].first); resultSplitList.push_back(SplitListItem{ result[0].str(), splitList.back() }); iterStart = result[0].second; } return resultSplitList; } std::vector<SplitListItem> r = splitString("game.exe+009E820C+4+8-4", (std::regex)"[+-]"); for (size_t i = 0; i < r.size(); i++) { std::cout << r[i].key << std::endl; std::cout << r[i].value << std::endl; }