jsk\,j23,343,53\,425,234df,sff,我想分割上面的字符为数组,
逗号为分割点,
但是不能分割\,的字符,
那应该如何写这条正则表达式呢?谢谢

解决方案 »

  1.   

    直接调用string 的方法Split不就行了么,而且比正则的效率高
      

  2.   

    private void TestRegex07()
    {
        string yourStr = @"jsk\,j23,343,53\,425,234df,sff,";
        string[] result = Regex.Split(yourStr, @"(?<!\\),");
        foreach (string s in result)
        {
            MessageBox.Show(s);
        }
    }
      

  3.   

    其实这种需求用Regex.Split不如用Regex.Matches原因之一是就楼主所给例子,Regex.Split会多分割出一个空白项
    另一个原因就是如果源字符串是下面这种形式
    jsk\,j23,343,53\\,425,234df,sff,
    那么Regex.Split的正则需要写得比较复杂才能满足要求Regex reg = new Regex(@"([^,\\]|\\\\|\\,)+");
    MatchCollection mc = reg.Matches(yourStr);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n";
    }说用string 的方法Split的要么是没看需求,要么是太想当然了,为什么不动手去试一下呢
      

  4.   

    客客师傅说的对。Match可以少一个空值。