黑石雨 2018-06-08 01:37 采纳率: 100%
浏览 1513
已采纳

C#通过正则进行Split的问题

C#中我有一段字符串: "name,title,,(a1,a1),'m1,m2',content",我想要的结果: ["name","title","","(a1,a1)","'m1,m2'","content"],直接使用Split(',')无法得到想要的结果,于是想使用Regex.Split通过正则进行分割,我应该如何定义分隔符?谢谢!

  • 写回答

5条回答 默认 最新

  • xiaoyu35 2018-06-11 11:47
    关注

    static void Main(string[] args)
    {
    string str1 = "name,title,,(a1,a1),'m1,m2',content";
    string pattern1 = @"(?<=(.*),(?=.*))";
    string pattern2 = @"(?<=\'.*),(?=.*\')";
    string replacement1 = @"%#$";
    str1 = Regex.Replace(str1, pattern1, replacement1);
    str1 = Regex.Replace(str1, pattern2, replacement1);
    var strs1 = Regex.Split(str1, ",");
    var strs2 = new string[str1.Length];
    List temp = new List();
    foreach (var str in strs1)
    {
    string tmp = null;
    if(str.Contains(replacement1))
    {
    tmp = str.Replace(replacement1, ",");
    }
    else
    {
    tmp = str;
    }
    temp.Add(tmp);
    }
    Console.ReadKey();
    }
    先把()和''内的,号替换成特殊字符,然后split,最后在替换回来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?