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”。
答案 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
}
此致