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

时间:2013-07-02 07:55:43

标签: c#

E.g。字符串:

  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"]

如何将字符串拆分为数组,字符串格式如上,值为dynamic.i想要字符串“2013,6,1,10,00,00”。

2 个答案:

答案 0 :(得分:5)

输入字符串看起来像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();
        }
    }
}

输出是:

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

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

答案 1 :(得分:0)

您可以使用正则表达式匹配产品名称

之后的“2013,6,1,10,00,00”

这将完成这项工作:

ProductName','([\a-zA-Z0-9-,]+)

您可以使用http://www.regextester.com/来测试正则表达式。

要在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
}

此致