我正在寻找一个c ++代码,它可以从两个字符串之间的文件example.txt中提取一些特定内容,并忽略其余内容。例如,文件example.txt有以下行
xyz
abc
['Content','en']],
<html>hi this is a line <br></html>
',true],
suzi 20
我想在 [&#39;内容&#39;,&#39; en&#39;]],和&#39;,true]之间提取代码,< / strong>表示
<html>hi this is a line <br></html>
请注意,我不是编程和使用dev ++编译器的专家
答案 0 :(得分:0)
最简单的想法是将文件读入字符串,然后提取内容:
#include <string>
#include <sstream>
std::string extract(std::string const& tag_begin, std::string const& tag_end, std::istream& input)
{
// file stream -> in memory string
std::string filedata((std::istreambuf_iterator<char>(input)), std::istreambuf_iterator<char>());
// find content start and stop
auto content_start = filedata.find(tag_begin);
if (content_start == std::string::npos) {
return ""; // error handling
}
content_start += tag_begin.size();
auto content_end = filedata.find(tag_end, content_start);
auto content_size = content_end - content_start;
// extract (copy) content to other string
auto content = filedata.substr(content_start, content_size);
return content;
}
然后,您需要根据需要调整此通用解决方案。