我有大约 300 万个字符串,看起来像这样:
INSERT INTO my_table(v1, v2, v3, v4, v5, v6, v7) VALUES(1,'STRING','STRING',,,'STRING','STRING');
我需要编写一个脚本来查找所有彼此相邻的多个逗号的实例,并在它们之间插入 null
。
我已经尝试遍历字符串并检查每个字符,但我想要一个更快的解决方案。
这是我目前的(提议但缓慢的)解决方案:
char last_char = line.at(0);
for(std::string::iterator i = line.begin(); i != line.end(); ++i) {
char current_char = line[i];
if(current_char == ',' && last_char == ',') {
//Insert null here
}
last_char = current_char;
}
解决方案最好是快速的,因为我需要转换大约 3m 行。
总而言之,脚本运行后字符串应该如下所示:
INSERT INTO my_table(v1, v2, v3, v4, v5, v6, v7) VALUES(1, 'STRING', 'STRING', null, null, 'STRING', 'STRING');
最佳答案
string newString = Regex.Replace(inString, ",(?=,)", ", null");
关于c++ - 检查一个字符串是否有多个彼此相邻的逗号C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50537585/