得到一个字符串,如何去除其中的数字、英文、标点(中文标点和英文标点)??

解决方案 »

  1.   

    正则表达式!
    [a-zA-Z0-9\u4e00-\u9fa5]+
    [^0-9A-z\u4e00-\u9fa5]
      

  2.   

    http://www.cnblogs.com/qyz123/archive/2007/05/12/743537.html正则表达式的方法
      

  3.   

    string result = Regex.Replace(yourStr,@"(?i)[\da-z,.~!@#$%^&&*()+\-,。~!@#¥%……&*()+-——=]",string.Empty);
      

  4.   

    string yourStr = "测试。这样可以么?english?132fda";
    string result = Regex.Replace(yourStr, @"(?i)[\da-z,.~!@#$%^&&*()+\-,。~!?@#¥%……&*()+-——=]", string.Empty);
    MessageBox.Show(result);
      

  5.   


            string s = "...";
            s = System.Text.RegularExpressions.Regex.Replace(s, @"[0-9]|[a-z]|[A-Z]|\W", "");
            Response.Write(s);
      

  6.   

    // 验证输入汉字  
       public bool IsChinese(string str_chinese)
       {
                return System.Text.RegularExpressions.Regex.IsMatch(str_chinese, @"^[\u4e00-\u9fa5],{0,}$");
       }
      

  7.   


                Regex rx = new Regex("^[\u4e00-\u9fa5]$");
                String str = "shti磁碟机54dfdf封口机0090-/";
                Char[] cs = str.ToCharArray();
                StringBuilder stemp = new StringBuilder();
                for (Int32 i = 0; i < cs.Length; i++)
                {
                    if (rx.IsMatch(cs[i].ToString()))
                        stemp.Append(cs[i]);
                }
                Console.WriteLine(stemp.ToString());
      

  8.   

    简化成这样:private void TestRegex28()
    {
        string yourStr = "能详细一点吗?7楼那样,但是我怎么觉得7楼那样会漏掉很多标点...";
        string result = Regex.Replace(yourStr, @"(?i)[\d\Wa-z]", string.Empty);
        MessageBox.Show(result);
    }
      

  9.   


    只要汉字是吧,早说吗:
            string s = "...";
            s = System.Text.RegularExpressions.Regex.Replace(s, @"[^\u4e00-\u9fa5]", "");
            Response.Write(s);
      

  10.   

    \d 数字
    a-z 小写字母,最前面有(?i)模式修改,忽略大小写,a-z就匹配所有字母
    \W 匹配所有符号整个过程就是按你说的数字,字母,符号替换为空字符串。
      

  11.   

    将过滤封装到一个方法中:        public static String DoFilter(String str)
            {
                Regex rx = new Regex("^[\u4e00-\u9fa5]$");
                Char[] cs = str.ToCharArray();
                StringBuilder stemp = new StringBuilder();
                for (Int32 i = 0; i < cs.Length; i++)
                {
                    if (rx.IsMatch(cs[i].ToString()))
                        stemp.Append(cs[i]);
                }
                return stemp.ToString();
            }        static void Main(string[] args)
            {
                String str = "shti磁碟机54dfdf封口机0090-/";            Console.WriteLine(DoFilter(str));
            }