要获取std::regex的所有可能匹配,可以使用std::sregex_iterator类来迭代匹配结果。以下是一个示例代码: ```cpp #include <iostream> #include <regex> int main() { std::string text = "Hello, my name is John. I live in New York."; std::regex pattern("\\b\\w+\\b"); // 匹配单词 std::sregex_iterator it(text.begin(), text.end(), pattern); std::sregex_iterator end; while (it != end) { std::smatch match = *it; std::cout << match.str() << std::endl; ++it; } return 0; } ``` 在上面的示例中,我们使用std::sregex_iterator来迭代匹配结果。它接受三个参数:待匹配的字符串的起始迭代器、结束迭代器和正则表达式模式。在每次迭代中,我们可以通过解引用迭代器来获取匹配结果,并使用std::smatch类来访问匹配的子字符串。 输出结果将是所有匹配到的单词: ``` Hello my name is John I live in New York ``` 注意,上述示例中的正则表达式模式是匹配单词的简单示例。您可以根据自己的需求修改正则表达式模式来匹配不同的内容。