文件名通配符匹配的代码_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 文件名通配符匹配的代码

文件名通配符匹配的代码

 2013/7/15 19:48:23  蒋叶湖  博客园  我要评论(0)
  • 摘要:Windows下可以用*?作为通配符对文件名或目录名进行匹配。程序中有时候需要做这样的匹配,但.Netframework没有提供内置的函数来做这个匹配。我写了一个通过正则进行匹配的方法。privatestaticboolWildcardMatch(stringtext,stringpattern,boolignoreCase){if(string.IsNullOrEmpty(pattern)){returntrue;}if(string.IsNullOrEmpty(text)){foreach
  • 标签:文件 代码 通配符 文件名

Windows 下可以用 * ? 作为通配符文件名或目录名进行匹配。程序中有时候需要做这样的匹配,但.Net framework 没有提供内置的函数来做这个匹配。我写了一个通过正则进行匹配的方法。

 

class="cnblogs_code_copy">复制代码
 private static bool WildcardMatch(string text, string pattern, bool ignoreCase)
    {
        if (string.IsNullOrEmpty(pattern))
        {
            return true;
        }

        if (string.IsNullOrEmpty(text))
        {
            foreach (char c in pattern)
            {
                if (c != '*')
                {
                    return false;
                }
            }

            return true;
        }

        string regex = "^" + Regex.Escape(pattern).
                           Replace(@"\*", ".*").
                           Replace(@"\?", ".") + "$";

        if (ignoreCase)
        {
            Match match = Regex.Match(text, regex, RegexOptions.IgnoreCase);

            return match.ToString() == text;
        }
        else
        {
            Match match = Regex.Match(text, regex);

            return match.ToString() == text;
        }
    }
发表评论
用户名: 匿名