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

ばかげた質問: なぜここで正規表現を使用しているのですか?

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

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