C ++ regex_match match_continuous标志与起始子字符串不匹配

时间:2014-07-10 05:54:16

标签: c++ regex

我用regex_match咆哮了下面的例子

string text("*  @file  my_file.c");
regex exp("\\s*\\*\\s*@file")

if(regex_match(text,exp,regex_constants::match_continuous))
    //This doesn't work

我知道 regex_match 尝试将整个文本与正则表达式匹配,但据我读到here match_continuous 标志应该接受启动的子字符串在文本的开头。但是我的运气不顺利所以我不得不将我的解决方案转换为这个

string text("*  @file  my_file.c");
regex exp("^\\s*\\*\\s*@file")

if(regex_search(text,exp))
    //This time works

我想问一下,我在第一个例子中做错了什么。我的环境是VS2010。

1 个答案:

答案 0 :(得分:2)

match_continous适用于regex_search

E.g。

std::regex_search(text, exp, std::regex_constants::match_continuous)