1

入力コンマ区切り文字列を分割し、結果を配列に格納する必要があります。

以下は素晴らしい作品です

arr=inputString.split(",")

この例では

 John, Doe       =>arr[0]="John"      arr[1]="Doe" 

しかし、次の期待される出力を取得できません

"John, Doe", Dan  =>arr[0]="John, Doe" arr[1]="Dan"
 John, "Doe, Dan" =>arr[0]="John"      arr[1]="Doe, Dan"

次の正規表現も役に立ちませんでした

        var regExpPatternForDoubleQuotes="\"([^\"]*)\"";
        arr=inputString.match(regExpPatternForDoubleQuotes);
        console.log("txt=>"+arr)

文字列には、3 つ以上の二重引用符を含めることができます。

私はJavaScriptで上記を試しています。

4

2 に答える 2

2

これは機能します:

var re = /[ ,]*"([^"]+)"|([^,]+)/g;
var match;
var str = 'John, "Doe, Dan"';
while (match = re.exec(str)) {
    console.log(match[1] || match[2]);
}

使い方:

/
    [ ,]*     # The regex first skips whitespaces and commas
    "([^"]+)" # Then tries to match a double-quoted string
    |([^,]+)  # Then a non quoted string
/g            # With the "g" flag, re.exec will start matching where it has
              # stopped last time

ここで試してください:http://jsfiddle.net/Q5wvY/1/

于 2013-05-20T20:24:02.557 に答える
0

execメソッドでこのパターンを使用してみてください。

/(?:"[^"]*"|[^,]+)+/g
于 2013-05-20T20:23:15.293 に答える