我正在.match()
对引号之外的逗号上的 CSV 文件拆分(使用 )进行排序,到目前为止我所做的是:
/"[^"]*"|[^,]+/g
唯一的问题是有几个区域的字符串可能是这样的:
...,xxx,,xxx,...
我想要发生的是我从以下数组中得到一个数组:
[...,xxx, ,xxx,...]
但相反我得到
[...,xxx,xxx,...]
将其更改为
/"[^"]*"|[^,]*/g
效果不太好。有什么想法吗?
我正在.match()
对引号之外的逗号上的 CSV 文件拆分(使用 )进行排序,到目前为止我所做的是:
/"[^"]*"|[^,]+/g
唯一的问题是有几个区域的字符串可能是这样的:
...,xxx,,xxx,...
我想要发生的是我从以下数组中得到一个数组:
[...,xxx, ,xxx,...]
但相反我得到
[...,xxx,xxx,...]
将其更改为
/"[^"]*"|[^,]*/g
效果不太好。有什么想法吗?
您可以像这样使用替换功能:
var str = yourString.replace(/,,/g,', ,')
之后,您将通过正则表达式获得所需的内容,希望对您有所帮助。干杯。
如果您有,,
. 它不会为 添加空元素"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
不要使用替换。而是在正则表达式上拆分values.split(/super awesome regexp/)
但是,您可能想要更好的控制。请参阅此答案以获得更好的解决方案。
愚蠢的问题:你为什么在这里使用正则表达式?
console.log("aaa,xxx,,xxx,,yyy,zzz".split(","));
> ["aaa", "xxx", "", "xxx", "", "yyy", "zzz"]