需求不太明确,还有你说的特殊字符包含哪些?汉字算不算?
如果特殊字符数目有限可以[^\d~!@#$%^&*()]+这么写
\d代表数字
在中括号后面加上你要过滤的特殊字符即可,如果字符范围包含中文日文等等,就得另写了

解决方案 »

  1.   

    如果想提取汉字的话举个简单的例子吧
                Regex reg = new Regex(@"[\u4E00-\u9FA5]+");
                string str = @"汉字 一起  ";
                MatchCollection mc = reg.Matches(str);
                foreach (Match m in mc)
                    Console.WriteLine(m.Value);
                Console.Read();
      

  2.   

    上面的汉字是简体中文的范围,如果向包括繁体中文用[\u4E00-\u9FFF]+
      

  3.   

                Regex reg = new Regex(@"[\u4E00-\u9FA5 ]+");
                string str = @"汉字 一起  ";
                Console.WriteLine(reg.IsMatch(str));
      

  4.   

    我弄出来啦,^[a-zA-Z_\u4e00-\u9fa5\s]+$用这个就好啦