c#使用一些分隔符和分隔符拆分字符串
虽然有很多关于字符串拆分的帖子,但我找不到解决问题的方法。 我需要将字符串拆分为数组,但该字符串在某些字段上有分隔符(通常是带有分隔符的值) 字符串看起来像: 约翰:“2016/10/15”:“15:20:14”:“经理” 如果我跑步:c#使用一些分隔符和分隔符拆分字符串,c#,arrays,string,split,C#,Arrays,String,Split,虽然有很多关于字符串拆分的帖子,但我找不到解决问题的方法。 我需要将字符串拆分为数组,但该字符串在某些字段上有分隔符(通常是带有分隔符的值) 字符串看起来像: 约翰:“2016/10/15”:“15:20:14”:“经理” 如果我跑步: string[] items = line.Split(':'); 它将字符串拆分为6个项目,而实际上应该只有4个项目 Split函数可以用什么方法处理这个问题 编辑: 这6项是: John 2016/10/15 "15 20 14" "Manager" 我
string[] items = line.Split(':');
它将字符串拆分为6个项目,而实际上应该只有4个项目
Split函数可以用什么方法处理这个问题
编辑:
这6项是:
John
2016/10/15
"15
20
14"
"Manager"
我希望时间(15:20:14)是一项。我想你需要一个有两种状态的解析器:内引号和外引号
存在类似的库,可以针对分隔符(
:
)和引号字符(“
)进行配置甚至是引号字符如何转义。因为第一个元素没有用引号包装,所以它在进行清晰的拆分时会遇到麻烦。如果您不想使用第三方库,这是在做一些假设,因为我不知道在您的情况下什么类型的输入字符串是有效的,也就是说,如果第一个元素只是结肠
public void GetElements()
{
var delimiter = ":";
var myStr = "John:\"2016/10/15\":\"15:20:14\":\"Manager\"";
//Split on quotes and remove elements from the array that are the delimter
var elementArray = myStr.Split(new [] { '"'}, StringSplitOptions.RemoveEmptyEntries);
elementArray = elementArray.Where(x => x != delimiter).ToArray();
//Scrub the first element to remove the delimiter
var firstElement = elementArray.ElementAt(0);
elementArray[0] = firstElement.Remove(firstElement.Length - 1);
foreach(var element in elementArray) Console.WriteLine(element);
Console.ReadKey();
}
这方面的假设是:
John:“2016/10/15”:“15:20:14”:“Manager”:“我的新字符串”
拆分后的结果是什么?6项是什么?我认为
split
不够。也许你应该试试正则表达式?在我看来,它在每个冒号上都会拆分。你到底想得到什么?split函数是如何删除引号的?这6项是错误的。@CameronCastillo-你是如何存储doubl的字符串中的e引号?转义字符在哪里?