正则表达式无法打印

时间:2016-08-04 08:42:03

标签: c++ regex

我正在使用此Regex语句来运行。但由于某种原因,它不会在终端打印。

 string s (filename);
 smatch m;
 regex e ("(\\.[^.]+)$");
 regex_search (s,m,e);

 cout << m.suffix().str() <<endl;

我做错了什么?按照教程但由于某种原因不打印。

1 个答案:

答案 0 :(得分:0)

请参阅suffix reference

  

获得对std::sub_match对象的引用,该对象表示正则表达式的整个匹配结束与目标序列结束之间的目标序列

在您的情况下,由于您匹配字符串的结尾,因此它是空的。如果您需要打印匹配值,请使用m.str()或 - 因为您将模式放入捕获组 - m.str(1)

请参阅IDEONE C++ demo