仅在第500个逗号处分割

时间:2018-10-18 09:36:29

标签: c# asp.net .net regex

string val =“ 1,2,3,4,5,.....................”;

我需要在第500个逗号分开(这是字符串,但要理解我给出的数字)

喜欢

“ 1,2,3 ....,500” “ 501,502,.....,1000” “ 1001,1002”

我需要无循环的解决方案

2 个答案:

答案 0 :(得分:1)

您可以将字符串与以下正则表达式匹配(其中499是500减去1):

(?:[^,]+,){0,4}[^,]+

演示(此处每5个逗号分隔):https://regex101.com/r/nbRxdv/2

答案 1 :(得分:0)

假设“无循环”意味着您很高兴让LINQ在内部使用循环,也许是这样的:

        string s = "your,comma,string";
        string[] ss = s.Split(',');

        Print500(ss, 0);

    private void Print500(IEnumerable<string> ies, int skip)
    {
        if (skip > ies.Count())
            return;

        Console.Out.WriteLine(string.Join(",", ies.Skip(skip).Take(500)));

        Print500(ies, skip + 500);
    }

我还没有运行它,所以它可能有一些小问题。