Я работаю над проектом для школы, он включает в себя путь к указанному пути к файлу и подсчету файлов. Однако по какой-то причине мой не считает их. Как я вижу это, регулярное выражение, которое я использую для расширения моего файла, недопустимо, или итератор каталогов был выполнен неправильно. Тем не менее, я играл с ним в течение нескольких часов, и я не получаю это регулярное выражение: 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;
}
}
Я никогда не слышал или не использовал обычные или расширенные регулярные выражения. – billyjim1
http://www.cplusplus.com/reference/regex/regex_search/ В нем говорится: Объект basic_regex (шаблон) для соответствия. Поэтому вы должны изменить re на «\. \ (Java \ | class \\)». –
Я сделал это, однако он все еще не работает – billyjim1