Skip to main content
 首页 » 编程设计

c#之通过正则表达式在 C# 中验证文件名

2024年01月28日26lvdongjie

我想验证这种格式的文件名:LetterNumber_Enrollment_YYYYMMDD_HHMM.xml

string filename = "Try123_Enrollment_20130102_1200.xml"; 
Regex pattern = new Regex(@"[a-zA-z]_Enrollment_[0-9]{6}_[0-9]{4}\\.xml"); 
if (pattern.IsMatch(filename)) 
{ 
return isValid = true; 
} 

但是,我无法让它工作。

我在这里遗漏了什么吗?

请您参考如下方法:

您没有匹配开头的数字。您的模式应该是:^[A-Za-z0-9]+_Enrollment_[0-9]{8}_[0-9]{4}\.xml$ 以匹配给定的字符串。

变化:

  1. 您的字符串在第一个 _ 符号之前以字母数字字符串开头,因此您需要同时检查(字母和数字)。
  2. 在 Environment_ 部分之后,您的数字长度为 8 而不是 6。
  3. 不需要双 \。您只需要转义点(即 \.)。

Demo app:

using System; 
using System.Text.RegularExpressions; 
 
class Test { 
    static void Main() { 
        string filename = "Try123_Enrollment_20130102_1200.xml"; 
        Regex pattern = new Regex(@"^[A-Za-z0-9]+_Enrollment_[0-9]{8}_[0-9]{4}\.xml$"); 
        if (pattern.IsMatch(filename)) 
        { 
            Console.WriteLine("Matched"); 
        } 
    } 
}