【问题标题】:Regex unable to print正则表达式无法打印
【发布时间】:2016-08-04 08:42:02
【问题描述】:

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

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

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

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

【问题讨论】:

标签: c++ regex


【解决方案1】:

suffix reference

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

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

IDEONE C++ demo

【讨论】:

    猜你喜欢
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2014-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多