使用std C++,我希望拆分一个以逗号分隔的字符串,但忽略由单引号包围的字符串中的逗号。例如:
1,'2,3',4,5,'6,7',8
当分裂变成
1
'2,3'
4
5
'6,7'
8我认为这最好用regex来处理,但我不知道如何构造模式。任何没有regex的解决方案也是受欢迎的。谢谢。
发布于 2017-11-25 22:22:06
我不确定C++语法是什么,但下面是一些伪代码:
vector<string> split(const string& value)
{
bool is_escaped = false;
vector<char> current;
vector<string> result;
for (char c : value)
{
if (c == '\'')
{
is_escaped = !is_escaped;
}
if (c == ',' && !is_escaped)
{
result.push_back(string(current.begin(), current.end());
current.clear();
}
else
{
current.push_back(c);
}
}
result.push_back(string(current.begin(), current.end());
return result;
}显然,您需要对其进行调整,使其成为有效的C++,但它应该能做到这一点。
https://stackoverflow.com/questions/47490907
复制相似问题