Regex无法打印

Regex unable to print

本文关键字:打印 Regex      更新时间:2023-10-16

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

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

我做错了什么?请按照教程进行操作,但由于某些原因无法打印。

参见suffix参考:

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

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

请参阅IDEONE C++演示