C# 任何想法都可以用相同的拆分语法拆分字符串?

C# 任何想法都可以用相同的拆分语法拆分字符串?,c#,C#,例如字符串: string test= "[1,2,3,4,'Name\'s(w)','ProductName','2013,6,1,10,00,00','2013,6,1,10,00,00',0]"; 有人能帮我吗?所以我的数组应该是 ["1","2","3","4","Name\'s(w)","ProductName","2013,6,1,10,00,00","2013,6,1,10,00,00","0"] 如何将字符串拆分为数组,字符串格式如上所示,值是动态的。我想要字符串“201

例如字符串:

  string test= "[1,2,3,4,'Name\'s(w)','ProductName','2013,6,1,10,00,00','2013,6,1,10,00,00',0]";
有人能帮我吗?所以我的数组应该是

["1","2","3","4","Name\'s(w)","ProductName","2013,6,1,10,00,00","2013,6,1,10,00,00","0"]

如何将字符串拆分为数组,字符串格式如上所示,值是动态的。我想要字符串“2013,6,1,10,00,00”。

您可以使用正则表达式匹配产品名称后的“2013,6,1,10,00,00”

这将完成以下工作:

ProductName','([\a-zA-Z0-9-,]+)
您可以使用来测试正则表达式

要在c#中使用它,您可以:

private static readonly Regex FOO_REGEX = new Regex("ProductName','([\a-zA-Z0-9-,]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);

Match match = FOO_REGEX.Match(inputParameters);

if (match.Success)
{
    GroupCollection groups = match.Groups;
    //groups[1].Value is equals to 2013,6,1,10,00,00
}

关于,

您可以使用正则表达式匹配产品名称后的'2013,6,1,10,00,00'

这将完成以下工作:

ProductName','([\a-zA-Z0-9-,]+)
您可以使用来测试正则表达式

要在c#中使用它,您可以:

private static readonly Regex FOO_REGEX = new Regex("ProductName','([\a-zA-Z0-9-,]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);

Match match = FOO_REGEX.Match(inputParameters);

if (match.Success)
{
    GroupCollection groups = match.Groups;
    //groups[1].Value is equals to 2013,6,1,10,00,00
}

在这方面,

输入字符串在JSON语法中看起来像数组,所以您可以使用内置的JSON解析器:

using System;
using System.Web.Script.Serialization;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            const string input = @"[1,2,3,4,'Name\'s(w)','ProductName','2013,6,1,10,00,00','2013,6,1,10,00,00',0]";
            var parsed = new JavaScriptSerializer().Deserialize<object[]>(input);
            foreach (var o in parsed)
            {
                Console.WriteLine(o.ToString());
            }
            Console.ReadLine();
        }
    }
}

请记住,您需要在项目中添加对System.Web.Extensions的引用。

输入字符串看起来像JSON语法中的数组,因此使用内置JSON解析器就足够了:

using System;
using System.Web.Script.Serialization;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            const string input = @"[1,2,3,4,'Name\'s(w)','ProductName','2013,6,1,10,00,00','2013,6,1,10,00,00',0]";
            var parsed = new JavaScriptSerializer().Deserialize<object[]>(input);
            foreach (var o in parsed)
            {
                Console.WriteLine(o.ToString());
            }
            Console.ReadLine();
        }
    }
}

请记住,您需要在项目中添加对System.Web.Extensions的引用。

我不明白。您对数组的期望是什么?test.Split(',')[6]格式是否始终相同?倒数第二和第三个值是否始终相同?选择“2013,6,1,10,00,00”的标准是什么?这个伪JavaScript数组中的位置?数据格式?到目前为止您尝试了什么?基本上您希望在“,”上拆分,并忽略双引号之间的任何逗号?我听上去像是在说什么,我不明白。您对数组的期望是什么?test.Split(',')[6]格式是否始终相同?倒数第二和第三个值是否始终相同?选择“2013,6,1,10,00,00”的标准是什么?这个伪JavaScript数组中的位置?数据格式?到目前为止您尝试了什么?基本上您希望在“,”上拆分,并忽略双引号之间的任何逗号?听起来像是CSV解析谢谢Tommi这是我需要的谢谢Tommi这是我需要的