我有一个看起来像这样的字符串:
'xxx',1,'yyy',0,'zzz,www',0,'','etc'
我想用逗号分隔它,但问题在于包含它的元素(字符串)。我可以逐个元素地解析这个字符串,但最好使用正则表达式之类的东西。
如果元素是字符串类型,它总是用引号引起来。
预期结果:
xxx
1
yyy
0
zzz,www
0
<empty>
etc
用于拆分的原始字符串:DA,'SHT-1',3000.00,1500.00,1.00,1,3000.00,1500.00,'1.4301-10',7.900, * '1.4301','MAX,MIN-500','C'
代码:
string SampleText = @"DA,'SHT-1',3000.00,1500.00,1.00,1,3000.00,1500.00,'1.4301-10',7.900,
* '1.4301','MAX,MIN-500','C'";
// [1] Prepare for splitting (remove new lines, white spaces, etc);
SampleText = Regex.Replace(SampleText, @"\r\n?|\n|\*|\s", "");
// [2] replacing commas
MatchCollection mc = Regex.Matches(SampleText , "\'.*?\'");
foreach (Match mh in mc)
{
if (mh.Value.Contains(','))
{
SampleText = SampleText.Replace(mh.Value, mh.Value.Replace(",", "_"));
}
}
// splitting
string[] progHeader = SampleText.Split(new char[] { ',' });
我需要的是通过替换逗号来消除步骤。