我正在为学校开展一个项目,它涉及进入指定的文件路径并计算文件扩展名。但由于某种原因,我的不计算它们。
我看到它的方式,我用于我的文件扩展名的正则表达式无效,或目录迭代器未正确完成。但是,我已经玩了几个小时了,我没有得到它
正则表达式:
regex extensions("\.(java|class)");
目录迭代器:
void nrScan(regex extensions, path const& f, map<string, int> &numExtensions)
{
for (directory_iterator d(f), e; d != e; d++)
{
string extension = d->path().extension().string();
int count = 0;
if (regex_search(extension, extensions))
{
numExtensions[extension]++;
count++;
}
cout << count << endl;
}
}
答案 0 :(得分:0)
您的正则表达式看起来像扩展正则表达式。您必须确保regex_search使用扩展RE而不是基本RE来进行搜索。