📜  用于接受文件名的正则表达式 c# (1)

📅  最后修改于: 2023-12-03 15:27:11.164000             🧑  作者: Mango

用于接受文件名的正则表达式 c#

在C#编程中,我们经常需要使用正则表达式来验证输入数据的格式是否正确。在文件名的场景中,我们同样需要对输入的文件名进行验证。下面介绍一下用于接受文件名的正则表达式。

文件名的要求

在Windows系统上,文件名需要满足以下要求:

  1. 文件名不可以是一个单句号("."),也不可以是两个及以上的连续句号("...")。
  2. 文件名中不能包含逗号(","), 冒号(":"), 星号("*"), 问号("?"), 斜杠("/")等特殊字符。
  3. 文件名长度不能超过255个字符。
  4. 文件名中不能包含单引号或双引号。
正则表达式

基于上述文件名的要求,我们可以构建以下正则表达式:

^[^\\/?%*:|"<>\.]+\.[^\\/?%*:|"<>\.]{1,3}$

上述正则表达式实现了对文件名的必要验证,可以检测文件名中是否包含了无效字符,以及文件名的长度是否符合要求。

其中,^代表匹配字符串的开始位置,$代表匹配字符串的结束位置。[^\\/?%*:|"<>\.]表示不匹配特殊字符,\.表示匹配单个句号,{1,3}表示前面的字符可以出现1~3次。

利用正则表达式验证文件名

以下是利用正则表达式验证文件名的示例代码:

using System.Text.RegularExpressions;

string fileName = "example.txt";
string pattern = "^[^\\/?%*:|\"<>\\.]+\\.[^\\/?%*:|\"<>\\.]{1,3}$";

if (Regex.IsMatch(fileName, pattern)) {
    Console.WriteLine("文件名符合要求");
} else {
    Console.WriteLine("文件名不符合要求");
}

通过调用 Regex.IsMatch() 方法,可以对文件名进行验证。

以上就是用于接受文件名的正则表达式。在实际开发中,我们可以将其应用到文件上传、文件下载等场景中,确保输入数据的合法性,提高程序的健壮性和稳定性。