1
私は学校のプロジェクトに取り組んでいます。指定されたファイルパスに入り、ファイル拡張子を数えます。しかし、何らかの理由で私はそれを数えていません。 ファイルの拡張子に使用している正規表現が有効でないか、またはディレクトリイテレータが正しく実行されていません。しかし、私は時間のためにそれで遊んでてきたと私はそれを 正規表現が届かない: 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オブジェクト(パターン)です。だから、あなたは "\。\(java \ | class \\)"に変更する必要があります。 –
私はそれをしましたが、まだ動作していません – billyjim1