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

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条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)