逗号分隔值 [英] comma separated values

查看:77
本文介绍了逗号分隔值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字符串:

原油,轻甜油-欧洲的ICE期货",110517,2011-05-17,067411,(1,000桶的合同)"

我正在寻找一个正则表达式,该表达式在逗号处分割字符串,但将双引号内的字符保持在一起.

诸如... regex.split(str,,[^ \"]))之类的东西将无法正常工作.

谁能帮我吗?

最佳
Mho

Hi, I have a string:

"CRUDE OIL, LIGHT SWEET - ICE FUTURES EUROPE" ,110517 ,2011-05-17,067411, "(CONTRACTS OF 1,000 BARRELS)"

I am looking for a regular expression which split the string at the commas but keeps the characters within the double quotes together.

Something like ...regex.split(str, ", [^\"])") won`t work.

Can anyone please help me out?

Best
Mho

推荐答案

尝试以下正则表达式:,(?!(?<=(?:^|,)\s*\x22(?:[^\x22]|\x22\x22|\\\x22)*,)(?:[^\x22]|\x22\x22|\\\x22)*\x22\s*(?:,|
Try this Regex: ,(?!(?<=(?:^|,)\s*\x22(?:[^\x22]|\x22\x22|\\\x22)*,)(?:[^\x22]|\x22\x22|\\\x22)*\x22\s*(?:,|


))

C#示例:
))

C# example:
string input = "\"CRUDE OIL, LIGHT SWEET - ICE FUTURES EUROPE\" ,110517 ,2011-05-17,067411, \"(CONTRACTS OF 1,000 BARRELS)\"";

string[] strings = System.Text.RegularExpressions.Regex.Split(input, @",(?!(?<=(?:^|,)\s*\x22(?:[^\x22]|\x22\x22|\\\x22)*,)(?:[^\x22]|\x22\x22|\\\x22)*\x22\s*(?:,|


))");;
))");



输出为:

原油,轻甜油-欧洲的ICE期货"
110517
2011-05-17
067411
(1,000桶的合同)"



Output is:

"CRUDE OIL, LIGHT SWEET - ICE FUTURES EUROPE"
110517
2011-05-17
067411
"(CONTRACTS OF 1,000 BARRELS)"


这篇关于逗号分隔值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆