gpt4 book ai didi

c++ - 通过空行 boost 拆分字符串

转载 作者:行者123 更新时间:2023-12-01 14:47:29 25 4
gpt4 key购买 nike

有没有办法在遇到空行时使用 boost::split 拆分字符串?
这是我的意思的一个片段。
std::stringstream 源;
source.str(input_string);
std::string 行;
std::getline(source, line, '\0');
std::vector 标记;
boost:split(token,line, boost::is_any_of("这里的空白行是什么");

最佳答案

您可以按双分割 \n\n除非您将空行表示为“可能包含其他空格的行”。
Live On Coliru

#include <boost/regex.hpp>
#include <boost/algorithm/string_regex.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <sstream>
#include <iostream>
#include <iomanip>

int main() {
std::stringstream source;
source.str(R"(line one

that was an empty line, now some whitespace:

bye)");

std::string line(std::istreambuf_iterator<char>(source), {});
std::vector<std::string> tokens;

auto re = boost::regex("\n\n");
boost::split_regex(tokens, line, re);

for (auto token : tokens) {
std::cout << std::quoted(token) << "\n";
}
}
打印
"line one"
"that was an empty line, now some whitespace:

bye"
允许“空”行上有空格
只需用正则表达式表示:
auto re = boost::regex(R"(\n\s*\n)");
现在输出是: Live On Coliru
"line one"
"that was an empty line, now some whitespace:"
"bye"

关于c++ - 通过空行 boost 拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62491337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com