0

我正在.match()对引号之外的逗号上的 CSV 文件拆分(使用 )进行排序,到目前为止我所做的是:

/"[^"]*"|[^,]+/g

唯一的问题是有几个区域的字符串可能是这样的:

...,xxx,,xxx,...

我想要发生的是我从以下数组中得到一个数组:

[...,xxx, ,xxx,...]

但相反我得到

[...,xxx,xxx,...]

将其更改为

 /"[^"]*"|[^,]*/g

效果不太好。有什么想法吗?

4

4 回答 4

2

您可以像这样使用替换功能:

var str = yourString.replace(/,,/g,', ,')


之后,您将通过正则表达式获得所需的内容,希望对您有所帮助。干杯。

于 2013-11-12T16:14:56.217 回答
1

如果您有,,. 它不会为 添加空元素"a",,但我认为这不是您想要的

正则表达式是:

/"[^"]*"|[^,]+|(?=,,)/g

示例用法:

var input = 'ACP,Something,,"Some long, sentence, with commas",other things';

var matches = input.match(/"[^"]*"|[^,]+|(?=,,)/g);

console.log(matches); // ["ACP", "Something", "", "\"Some long, sentence, with commas\"", "other things"]

演示:http: //jsbin.com/uzaDeRe/1/edit

于 2013-11-12T16:14:06.147 回答
0

不要使用替换。而是在正则表达式上拆分values.split(/super awesome regexp/)但是,您可能想要更好的控制。请参阅此答案以获得更好的解决方案。

于 2013-11-12T16:22:48.953 回答
0

愚蠢的问题:你为什么在这里使用正则表达式?

console.log("aaa,xxx,,xxx,,yyy,zzz".split(","));

> ["aaa", "xxx", "", "xxx", "", "yyy", "zzz"]
于 2013-11-12T16:25:14.687 回答