我正在使用此Regex语句来运行。但由于某种原因,它不会在终端打印。
string s (filename);
smatch m;
regex e ("(\\.[^.]+)$");
regex_search (s,m,e);
cout << m.suffix().str() <<endl;
我做错了什么?按照教程但由于某种原因不打印。
答案 0 :(得分:0)
请参阅suffix
reference:
获得对
std::sub_match
对象的引用,该对象表示正则表达式的整个匹配结束与目标序列结束之间的目标序列
在您的情况下,由于您匹配字符串的结尾,因此它是空的。如果您需要打印匹配值,请使用m.str()
或 - 因为您将模式放入捕获组 - m.str(1)
。