我写了一些工作代码,可以打印出连续出现两个元音的每一个实例。
std::regex x("(a|e|i|o|u){2}");
std::smatch r;
std::string t = some_string;
while (std::regex_search(t, r, x)) {
std::cout << "match: " << r.str() << '\n';
t = r.suffix();
}
但是当我像这样改变顺序:
while (std::regex_search(t, r, x)) {
t = r.suffix();
std::cout << "match: " << r.str() << '\n';
}
它突然开始给出随机结果。我看不出这两行之间的联系,以及改变它们的顺序为什么会影响任何事情。有人能解释一下吗?