日期:2014-05-18  浏览次数:21064 次

请教:用正则式判断文件名是否合法
请教:用正则式判断文件名是否合法
出现错误:正在分析“/|\|<|>|*|?”- 限定符 {x,y} 前没有任何内容。
C# code

/// <summary>
        /// 正则式判断,是否为合法文件格式,是则返回Ture,否则返回False;
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public bool RegexIsInvalidFileName(string fileName)
        {
          if(fileName.Length>255) 
          { 
            return false; 
          }
          else
          {
              Regex regex = new Regex(@"/|\|<|>|*|?");
              return regex.IsMatch(fileName) ? false : true; 
          }

        } 



------解决方案--------------------
C# code

Regex regex = new Regex(@"/|\\|<|>|\*|\?");

------解决方案--------------------
正则中如果匹配字符串本身,有些字符需要转义的,楼主的例子中
\ * ?

另外按楼主的需求,要判断的都是单个字符,不要那样写,楼主的写法与下面这种写法的效率差别非常大
C# code
Regex regex = new Regex(@"[/\\<>*?]");