使用正则表达式

时间:2016-11-25 06:42:08

标签: c# regex

我有csv文件,该分割可以使用正则表达式单引号,双引号或无引号。

单引号数据如。 它可能在单引号中包含双引号或逗号。需要用单引号拆分。

'name','Barcode','SecundaryKey','category','description','supplier','quantity','price','discount_price','short_name'
'eclipse 900-206 helping hands  iron holder -2.5x','30475','7crkvVHAFkVJu670c','Nu4m5WRJS','HNU6UFuR26nq','PtmI4DlZGfCk','iNHEvAMwIfVKfNFlVUOyEHDz','6977447822.90','7285957253.05','ybT8NOZB'
'bostitch 15 amp 7 1/4"" heavy circular saw blade','173924','BOYw88CXc12lau73Rylz','wMxwNtE','6qSJDZEFMYP8Q','l22xuvZ812b0ywe','SsvYZn0vqvTk8','8781804894.55','3277896.95','ULsAwUwU6b'

或双引号Data like.it也可能包含双引号内的comm。需要用双引号分割。

"name","Barcode","SecundaryKey","category","description","supplier","quantity","price","discountprice","shortname"
"qep glass, cutting,    blade","679976","8uDyHo8b","veJfgpim","nIxcT5ge2gIj","SmwQk","5qNOIvBmM3","2388127046.04","919372222.24","5VG2Yj4LgXop"
"rsr soldering station","892595","wflH6uknV7wb0M","NO72OTdjTSFx2","DLlpVgOyvqc","b8Bddyi","FctnER","3626684222.94","720238132.30","rZ2"

或没有引号,只需要用逗号分隔。

SecundaryKey,Supplier,Name,Quantity,Barcode,IsTop,IsScannable,Category,Description,Price,DiscountPrice,Message,ShortName,ImageUrl
1001,Honig,Chinese Kippensoep 56 g,78 gram,,1,1,,none,1000,100,,Honig,http://www.janlinders.nl/system/html/8714700447c7.png
1002,Cote d'Or,Puur 200 g,200 gram,,1,0,,,9000,50,,,http://www.janlinders.nl/system/html/5410081w_1_bb-66c69fc6.png

这里的问题就像这些这三种操作都可能在CSV文件中,因为这是最终用户上传。如何使用正则表达式处理这些情况。 我试过但只工作单引号和双引号而且没有引用而不是三合一。 感谢。

1 个答案:

答案 0 :(得分:0)

如果您坚持使用regular expressionsRegex.Split可以帮您完成工作:

 var words = Regex.Split(text1, @"[''"",]").Where(w=>!string.IsNullOrEmpty(w)).Select(w=>w.Trim());

它用逗号或单引号或双引号分割,我相信你想要的。它还会删除空结果。

我希望它有所帮助。

相关问题