本帖最后由 zhuzhaodan 于 2012-12-01 15:55:50 编辑

解决方案 »

  1.   

    var ary = Regex.Matches(str, "[^,。,.?!?!]+|[,。,.?!?!]+").Cast<Match>().Select(t => t.Value).ToArray();
                 
      

  2.   

    var ary = Regex.Matches(str, @"[^,。,.;;\x20]+|[,。,.;;\x20]+").Cast<Match>().Select(t => t.Value).ToArray();
                 
      

  3.   


    string test2 = @"我想指定只用 逗号,句号。分号;空格 这4个标点分割";
    string [] list= test2.Split(',',',','.','。',' ',';',';');
    一定要用正则吗,这样也可以啊,另外我考虑了英文输入法下的逗号和中文输入法下的逗号,不知道是不是你想要的
      

  4.   

    [^,。,.;;\x20]+|[,。,.;;\x20]+
    这里为什么用^这个定位符阿,还有\x20代表什么意思?MSDN上说:使用十六进制表示形式指定字符(nn 恰好由两位数字组成)。但是不明白