【发布时间】:2021-07-26 04:30:15
【问题描述】:
我正在尝试获取具有特定模式的文件夹文件名。
这是我写的:
string[] allfiles = Directory.GetFiles(x, "??-?-??????????.pdf", SearchOption.AllDirectories);
但这也有效:
string[] allfiles = Directory.GetFiles(x, "??-?-???.pdf", SearchOption.AllDirectories);
结果是一样的:
C:\Users\source\repos\LettersUploader\myFiles\10-9-110000000.pdf
C:\Users\source\repos\LettersUploader\myFiles\11-8-120000000.pdf
C:\Users\source\repos\LettersUploader\myFiles\12-7-130000000.pdf
我希望这只是数字,并且在这种模式下是“11-1-111111111.pdf”,所以如果有文件看起来像这样“11-1-1111.pdf”或“xx-g-atpfgtnjk. pdf" 他们不会包括在内。
【问题讨论】:
-
正则表达式
Path.GetFielName()(例如@"\d{2}-\d-\d{9}"+".ext")? -
我删除了我的答案。我完全看错了你的最后一句话
-
当内置通配符支持不足时,就不得不使用其他一些模式匹配的手段。正则表达式通常是下一个选择。查看重复项。