小编Pra*_*ant的帖子

在C#.NET中使用特定模式修剪字符串值

我有一个900-1000个字符长的字符串.模式字符串如下

"编号:东西,somestringNumber:什么东西,somestring"

等示例字符串:

"23:值,ordernew14:valueagain,orderagain"

要求是每当超过1000个字符时,我必须删除前500个字符.然后如果不以Number开头,我必须删除字符,直到我到达第一个字符为数字的点

sortinfo = sortinfo.Remove(0, 500);
sortinfo = new string(sortinfo.SkipWhile(c => !char.IsDigit(c)).ToArray());
Run Code Online (Sandbox Code Playgroud)

我可以借助上面的代码来做到这一点

在上面的例子中,如果我给删除5个字符输出将是

14:valueagain,orderagain

这很好.但如果字符串有值:

23:值,or3dernew14:valueagain,orderagain

并删除5个字符,输出为

3dernew14:valueagain,orderagain

并且要求是

14:valueagain,orderagain

因此它打破了一切,因为它的格式不正确.请帮帮我怎样才能做到这一点

我的完整代码

class Program
{
    static void Main(string[] args)
    {
        string str;
        str=TrimSortInfo("23:value,ord4er24:valueag4ain,order6again15:value,order"); // breaking value
        //str = TrimSortInfo("23:value,order24:valueagain,orderagain15:value,order"); //working value
        Console.WriteLine(str);
        Console.ReadLine();

    }

    static string TrimSortInfo(string sortinfo)
    {
        if (sortinfo.Length > 15)
        {
            sortinfo = sortinfo.Remove(0, 15);
            sortinfo = new string(sortinfo.SkipWhile(c => !char.IsDigit(c))
                         .ToArray());
            return sortinfo;
        }
        return sortinfo;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# regex linq string

6
推荐指数
1
解决办法
93
查看次数

标签 统计

c# ×1

linq ×1

regex ×1

string ×1