私はその後、より効率のために、それぞれの値を分割し、最初の各部分を見つけるに行きますか。それから私は単一のスペースを使用してそれらを一緒に固執するでしょう。私は\s*
のものをたくさん使っていました。なぜなら、複数のスペース(コメント行のものなど)があると仮定しているからです。
var str = 'value1 value2 (value3 value4) -value5 value6';
//var str = ' value1 value2 ( value3 value4) -value5 value6 ';
var pairs = str.match(/^\s*(.+?)\s*\(\s*(.+?)\s*\)\s*(.+?)\s*$/);
values1 = pairs[1].split(/\s+/);
values2 = pairs[2].split(/\s+/);
values3 = pairs[3].split(/\s+/);
console.log('values1:',values1,'-->',values1.join(' '));
console.log('values2:',values2,'-->',values2.join(' '));
console.log('values3:',values3,'-->',values3.join(' '));
正規表現の説明
^
(.+?)
文字群(少なくとも1文字)
\s*
可能空きスペース 列
\s*
可能な空きスペースの開始 の
\(
開口括弧
\s*
可能空きスペース
(.+?)
文字群(少なくとも1文字)
\s*
可能空きスペース
\)
閉括弧
\s*
可能空きスペース
(.+?)
文字グループ(1文字以上)
\s*
可能空のスペースの文字列
の
$
エンドあなたが長く、入力と期待される出力の例を与えることができますか? – Dogbert