逗号分隔值 [英] comma separated values
问题描述
我有一个字符串:
原油,轻甜油-欧洲的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屋!