using System;
using System.Text.RegularExpressions;
namespace ConsoleApp7
{
class Program
{
static void Main(string[] args)
{
string[] arr = {
"xxx.rar",
"xxx.rar.1",
"xxx.rar.2.3",
"xxx.rar.3.4.5",
"xxx.rar.3.x.5",
"xxx.rar.3.x.a",
"xxx.rar.3.rar.5.b",
"xxx.rar.3.log.5.b"
};
string extName = ".rar";
foreach (string fileName in arr)
{
Console.WriteLine("{0}: \t{1}", fileName, IsMatchFileName(fileName, extName));
}
Console.Read();
}
private static bool IsMatchFileName(string fileName, string extName)
{
string pattern = string.Format(@"^.+\{0}(\.\d+)*$", extName);//注:extName自带有点
return Regex.IsMatch(fileName, pattern, RegexOptions.IgnoreCase);
}
}
}
这个看着不起眼, 但确实是有用的。
比如log4net生成的log文件, 太大之后分成多个文件, 就是 .log.1, .log.2 ……
用这个匹配就很合适了。