我明白用正则表达式解析.json并不是一个好主意,但为了这个学校作业,我想知道我的正则表达式有什么问题。我有一个.json文档,我读入一个名为str的字符串,最终看起来像字符串x,我在下面的代码中包含它。从那里我想提取某些字段,但每次我使用regex_match检查我的正则表达式时,它返回false,我得不到匹配。有人能告诉我我的正则表达式有什么问题吗?
std::fstream file("words1.json");
std::string str((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
std::cout << str << std::endl;
std::string x = "[\n\t{\n\t\t\"line\":88,\n\t\t\"symbols\":\"())\",\n\t\t\"position\":8\n\t},";
std::regex reg("[^\"]+\"(line)[^\\d]+(\\d+)[^\"]+\"(symbols?).{5}([^\\\"]+).{11}(position).{3}(\\d+).{6}");
if (std::regex_match(str, reg)){
std::cout << "match" << std::endl;
}
else
std::cout << "no match" << std::endl;
根据网站regex101,这应该工作。我相信我已经完全逃脱了一切,所以如果我能得到一些见解,我将非常感激。感谢