这是我的代码:
path Path = "e:\\Documents\\";
boost::regex reg("(*.pdf)");
for(recursive_directory_iterator it(Path); it != recursive_directory_iterator(); ++it)
{
if(boost::regex_search(it->string(), reg))
{
cout << *it << endl;
}
}
但我总是在 Visual Studio 中收到 Abort() 错误,运行程序后,问题出在这一行:
boost::regex reg("(*.pdf)");
我没有声明正则表达式对象很好吗?
*.pdf
不是正则表达式,而是 glob(用于文件匹配)。你需要
boost::regex reg("(.*\\.pdf)");
-
.
: 匹配任意一个字符
-
*
: 0 或更多上一场比赛
-
\\
: 制作一个\
用于转义(忽略下一个字符的正则表达式含义)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)