c# - 正则表达式检查文件格式是否符合 C# 中的预期

标签 c# regex

我的输入将是具有完整路径的文件名列表,我只需要提取文件名严格符合以下文件名格式的项目。

通用文件名格式。

 **c:\My\Path\To\File\fileName_YYYY-MM-DD_HH-MM-SS.ext**

我已经尝试遵循正则表达式模式,但我仍然看到一些噪音。

string regexPattern = @"fileName_[2-9][0-9]{3}-[0-1][0-9]-[0-3][0-9]_[0-2][0-9]-[0-5][0-9]-[0-5][0-9]\.ext$"

如果我遗漏了什么,请告诉我。

最佳答案

当你可以使用内置解析器的 DateTime 时,为什么要使用正则表达式:

string input = c:\My\Path\To\File\fileName_YYYY-MM-DD_HH-MM-SS.ext;
string filename = Path.GetFilenameWithoutExtension(input);

string[] parts = filename.Split('_');
if (parts.Length != 3) { /*Invalid*/ }

if (Path.GetExtension(input) != "ext") { /*Invalid*/ }

if (parts[0] != "filename") { /*Invalid*/ }

DateTime dt;
if (!DateTime.TryParseExact(parts[1] + "_" + parts[2], "yyyy-MM-dd_HH-mm-ss",
    CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) 
{ /*Invalid*/ }

//IsValid

关于c# - 正则表达式检查文件格式是否符合 C# 中的预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38095737/

相关文章:

c# - 我没有在 DLLImport 中使用的引用中看到 DLL

c# - Azure 存储资源管理器 : How to query Table Storage Rowkey with "Contains"?

javascript - C# 将图像数据发送到具有破坏图像 src 的双斜杠的 View

JavaScript:用 DIV 替换 P 的正则表达式

regex - 文本 block 的选择性打印只有一行匹配

php - .htaccess - 子域的 DocumentRoot

C# - 具有 new() 约束的泛型如何生成机器码?

c# - 获取参数类型和编号。 Visual Studio 编辑器 (C#) 中函数的参数

Python正则表达式删除所有包含数字的单词

javascript - 从字符串解析RegEx数组