1
#include <iostream>
#include <regex>
#include <sstream>
#include <vector>
std::vector<std::string> split(const std::string &str) {
std::regex rgx(""); //what goes here??
std::smatch base_match;
std::regex_search(str, base_match, rgx);
return {base_match.begin(), base_match.end()};
}
std::ostream &operator<<(std::ostream &os,
const std::vector<std::string> &strs) {
for (const auto &str : strs) {
os << "-> " << str << "\n";
}
return os;
}
int main(int argv, char **argc) {
std::cout << split("asdasd,dasdasd,adadada");
return 0;
}
を使用して、カンマ区切りのリストをトークン化、私は(sregex_token_iteratorを使用せずに、またはブースト)正規表現のソリューションを持っていると思いますあまりにも)。STD正規表現に
expected output:
asdasd
dasdasd
adadada
はなぜ? 'str.find( '、')'と 'str.substr'の繰り返し適用に関して何が問題になっていますか? – Chowlett
だからスペースで区切られたリストやカンマで区切られたリスト、またはスペースとカンマで区切られたリストの組み合わせで読み込まれる正規表現が必要なのでしょうか? – NathanOliver
@ NathanOliver私はそれが{a、b、c、d}のようなものを扱うようにしたい – mkmostafa