我得到了相当多的字符串(实际上是SQL代码的片段),格式如下:
('ABCDEFG', 123542, 'XYZ 99,9')我需要使用C#拆分这个字符串,以便获得:
我最初使用的是一个简单的Split(','),但是由于最后一个参数中的逗号正在对输出造成破坏,所以我需要使用Regex来获得它。问题是,在正则表达式中我仍然很幼稚,而且我似乎无法破解这个模式,主要是因为在该字符串中,数值参数和α-数值参数都可能随时存在。
根据引号外的每个逗号,我能用什么来分割这个字符串?干杯
发布于 2010-06-30 09:16:45
您可以在所有逗号上拆分,这些逗号后面有偶数的引号,使用下面的Regex查找它们:
",(?=(?:[^']*'[^']*')*[^']*$)"你会用它就像
var result = Regex.Split(samplestring, ",(?=(?:[^']*'[^']*')*[^']*$)");发布于 2018-01-16 06:10:27
//this regular expression splits string on the separator character NOT inside double quotes. 
//separatorChar can be any character like comma or semicolon etc. 
//it also allows single quotes inside the string value: e.g. "Mike's Kitchen","Jane's Room"
Regex regx = new Regex(separatorChar + "(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))"); 
string[] line = regx.Split(string to split);发布于 2021-02-25 18:25:32
我遇到了一个问题,它没有捕获空列。我将其修改为获得空字符串结果。
var results = Regex.Split(source, "[,]{1}(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");https://stackoverflow.com/questions/3147836
复制相似问题