C++ 用c+获取带有正则表达式的句子+;

C++ 用c+获取带有正则表达式的句子+;,c++,regex,C++,Regex,我需要从带有单词“walk”的字符串中获取带有正则表达式的句子。现在我只是想得到一些句子 std::string s ("Hello world! My name is Mike. Why so serious?"); std::smatch m; std::regex e ("^\\s+[A-Za-z,;'\"\\s]+[.?!]$"); // matches words beginning by "sub" while (std::regex_search (s,m,e)) {

我需要从带有单词“walk”的字符串中获取带有正则表达式的句子。现在我只是想得到一些句子

std::string s ("Hello world! My name is Mike. Why so serious?");
std::smatch m;
std::regex e ("^\\s+[A-Za-z,;'\"\\s]+[.?!]$");   // matches words beginning by "sub"

while (std::regex_search (s,m,e)) {
    for (auto w:m)
        std::cout << w << "\n" ;
}
std::string s(“你好,世界!我叫迈克,为什么这么严肃?”);
std::smatch m;
std::regex e(“^\\s+[A-Za-z,;”\“\\s]+[.?!]$”;//匹配以“sub”开头的单词
while(std::regex_搜索(s,m,e)){
用于(自动w:m)

std::cout除了正则表达式中字符串的开头和结尾之外,您忘记了用后缀更新“s”

#include <iostream>
#include <regex>

int main()
{
    std::string s ("Hello world! My name is Mike. Why so serious?");
    std::smatch m;
    std::regex e ("\\s?[A-Za-z,;'\"\\s]+[.?!]");

    while(std::regex_search (s,m,e))
    {
            std::cout << m.str() << "\n" ;
            s = m.suffix();
    }
    return 0;
}
#包括
#包括
int main()
{
字符串s(“你好,世界!我的名字是迈克。为什么这么严肃?”);
std::smatch m;
std::regex e(“\\s?[A-Za-z,;”\“\\s]+[.?!]”);
while(std::regex_搜索(s,m,e))
{

std::cout字符串匹配的开始和结束可能是你的正则表达式的绊脚石。建议链接是不寻常的,但是看看,这是一个很棒的正则表达式构建工具。