我正在尝试从文件中获取引号之间的内容,并且我正在使用正则表达式。这是我正在使用的正则表达式:
id=\"([^\"]+)\"|title=\"([^\"]+)\"
如您所见,每个特殊字符都被转义了。它在正则表达式测试器中完美运行,但在 c++ 代码中使用时找不到标题。身份证总能找到就好了。我尝试了几种变体,甚至删除了一半(在|之前)
id="60973129" title="EPA"
这是我正在使用的 C++ 代码:
std::regex rgx("id=\"([^\"]+)\"|title=\"([^\"]+)\"");
std::smatch match;
if (std::regex_search(line, match, rgx)) {
for (int i=0; i < match.size(); ++i) {
std::cout << match[i];
}
}
编辑:我发现如果分开放置,title=\"(.+?)\"
确实可以工作,但是我必须使用几个正则表达式,这违背了我的目的,因为我以后需要扫描更长的行。