0

次の刺し傷を検討してください。

'aaa (d) ddd (xc) '

一致関数を使用して次の結果を取得する方法:

["d","xc"]

試し'aaa (d) ddd (xc) '.match(/\(.*?\)/g)ましたが、戻ります:["(d)","(xc)"]

4

3 に答える 3

1

Korikulumの正規表現を少し調整します...

何かの代わりに、.*角かっこを開いていないものを指定した場合:

'aaa (d) ddd (xc) (more) text'.match(/[^\(]+(?=\))/g) // >> ["d", "xc", "more"]
于 2012-11-06T06:34:40.657 に答える
0

JavaScriptはルックビハインドをサポートしていないため、次のように実行できます。

var a = 'aaa (d) ddd (xc)'.match(/\(.*?(?=\))/g);

for (var i = 0; i < a.length; i++)
  a[i] = a[i].slice(1);
于 2012-11-06T05:53:06.540 に答える
0

replaceの代わりにそれを行うことができますmatch。私は今日同様の質問に答えました:

var str = 'aaa (d) ddd (xc)', 
    results = [];
str.replace(/\(([^()]+)\)/g, function(a,b) { results.push(b) });

console.log(results); //=> ['d', 'xc']
于 2012-11-06T06:20:20.413 に答える