国今日12234介绍,刑诉法修正案草,比如这句                for (int i = 1; i < line.Length; i++)
            {
               这个要加个判断条件,截取到的line[i]里面有数字标点,等非中文字符时不进行下面的语句,[^\u4e00-\u9fa5]*,这个是非中文的正则表达式,要怎么做                    
                {
                    StreamWriter my_writer = null;
                    my_writer = new StreamWriter(@"C:\Users\test\Desktop\abc2.txt", true, System.Text.Encoding.Default);
                    my_writer.Write(line[i - 1]);
                    my_writer.Write(line[i] + "\r\n");
                    my_writer.Close();
                }
            }
      求解

解决方案 »

  1.   

    这还要正则?line[i]就是i索引处的字符,你直接判断就是了
      

  2.   


    不用正则怎么判断写入的line[i]里有非中文?
      

  3.   

    string match = @"^\u4e00-\u9fa5";
    if (Regex.IsMatch(line[i], match))
                {
                    return true;
                }
      

  4.   


    错误 1 当前上下文中不存在名称“Regex” C:\Users\test\Documents\Visual Studio 2008\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 27 21 ConsoleApplication1
    是要加引用还是什么?
      

  5.   

    using System.Text.RegularExpressions;
      

  6.   

    正则匹配字符串应该是string match = @"^[u4e00-u9fa5]";
      

  7.   

    string pattern = @"^[\u4e00-\u9fa5]*";
     if(Regex.IsMatch(line[i],pattern ))
      {
        return true;
      }
    引入using System.Text.RegularExpressions;
      

  8.   


    还是有问题,错误 1 与“System.Text.RegularExpressions.Regex.IsMatch(string, string)”最匹配的重载方法具有一些无效参数 C:\Users\test\Documents\Visual Studio 2008\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 28 21 ConsoleApplication1
    错误 2 参数“1”: 无法从“char”转换为“string” C:\Users\test\Documents\Visual Studio 2008\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 28 35 ConsoleApplication1
      

  9.   

    不要循环,直接
    string pattern = @"^[\u4e00-\u9fa5]*";
     if(Regex.IsMatch(line,pattern ))
      {
      return true;
      }
      

  10.   

     if (line[i].IndexOf("[^\u4e00-\u9fa5]*") == -1)也不行line[i].IndexOf就行,,line[i]就不行了
      

  11.   

    line是字符串,line[i]就成了char当然不行,除非line是string[]
      

  12.   

    你的line[i]是char类型的,你转一下呗line[i].ToString()
      

  13.   

    你现在line是什么类型,字符串数组,字符串
      

  14.   

    char 类型 加了.tostring()if (line[i].ToString().IndexOf("[^\u4e00-\u9fa5]*") == -1)我是这样写的,但是没用,我想判断当line[i]是非中文的时候不进行下面的循环
    条件要怎么写string pattern = @"^[\u4e00-\u9fa5]*";
     if(Regex.IsMatch(line[i],pattern ))
    这种也一样,还是继续了。。
      

  15.   

     private void button1_Click(object sender, EventArgs e)
            {
                string line = "国今日12234介绍,刑诉法修正案草";
                string match = @"^[u4e00-u9fa5]";
                for (int i = 1; i < line.Length; i++)
                {                if (Regex.IsMatch(line[i].ToString(), match)==false )
                    {
                        StreamWriter my_writer = null;
                        my_writer = new StreamWriter(@"D:\abc2.txt", true, System.Text.Encoding.Default);
                        my_writer.Write(line[i - 1]);
                        my_writer.Write(line[i] + "\r\n");
                        my_writer.Close();                }            }        }
      

  16.   

    if (Regex.IsMatch(line[i].ToString(), match) == true)
                    {
                        if (Regex.IsMatch(line[i - 1].ToString(), match) == true)
    就像这2个,如果都是中午才继续执行下面的