regex c++正则表达式,用于列出目录中除隐藏文件以外的所有文件(以.开头)

u3r8eeie  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(99)

我有一个目录内容列表的字符串数组。
我想列出所有不以“”开头的字符串。
因此,从列表中,正则表达式不应包含".hid.mp3"".Hidden.txt"
有人能为下面的代码推荐fileRegex吗?

string fileList[] = {"test.png", "Hellozip.zip", "123.mp3", "hid.mp3", "hid.file.png", "sp ace.png", "comm(a.mp3", ".Hidden.txt"};

for(auto& file : fileList)
{
    if (std::regex_match(file, std::regex(fileRegex, std::regex_constants::icase)) == true)
    {
        cout << file << " - Match\n";
    }
    else
    {
        cout << file << " - No Match\n";
    }
}

预期输出应为:

test.png - Match
Hellozip.zip - Match
123\.mp3 - Match
.hid.mp3 - No Match
hid.file.png - Match
sp ace.png - Match
comm(a.mp3 - Match
.Hidden.txt - No Match

我试过了,但没有用:
"\[\\w-\]*\\.{0,1}\[\\w- ()\]*\\.(png|jpg|zip|mp3|txt)"
编辑:我可以处理“.",“..”作为特例,所以从问题中删除。

相关问题