提升regex_search找不到第一个匹配项

boost regex_search cannot find the first match

本文关键字:第一个 找不到 regex search 提升      更新时间:2023-10-16
boost::regex re("(abc)(.*?)");
boost::smatch m;
std::string str = "abcdlogin";
boost::regex_search(str, m, re);
我发现m[1].first是"

abcdlogin",m[1].second是"dlogin"。

但我认为m[1].first应该是"abc"吗?

如文档中所述:

m[n].first:对于所有整数 n

m[n].second:对于所有整数 n

请注意它们如何迭代到匹配的子表达式中。在您的示例中,如果您想要一个带有 "abc" 的字符串,您可以构造如下字符串:std::string s(m[1].first, m[1].second); .