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

问题描述 投票:0回答:1

我需要从String带有单词“ 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" ;
}

这不起作用。

c++ regex
1个回答
0
投票

除了正则表达式中字符串的开头和结尾,您都忘记了使用后缀来更新'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;
}
© www.soinside.com 2019 - 2024. All rights reserved.