次の刺し傷を検討してください。
'aaa (d) ddd (xc) '
一致関数を使用して次の結果を取得する方法:
["d","xc"]
試し'aaa (d) ddd (xc) '.match(/\(.*?\)/g)
ましたが、戻ります:["(d)","(xc)"]
次の刺し傷を検討してください。
'aaa (d) ddd (xc) '
一致関数を使用して次の結果を取得する方法:
["d","xc"]
試し'aaa (d) ddd (xc) '.match(/\(.*?\)/g)
ましたが、戻ります:["(d)","(xc)"]
Korikulumの正規表現を少し調整します...
何かの代わりに、.*
角かっこを開いていないものを指定した場合:
'aaa (d) ddd (xc) (more) text'.match(/[^\(]+(?=\))/g) // >> ["d", "xc", "more"]
JavaScriptはルックビハインドをサポートしていないため、次のように実行できます。
var a = 'aaa (d) ddd (xc)'.match(/\(.*?(?=\))/g);
for (var i = 0; i < a.length; i++)
a[i] = a[i].slice(1);
replace
の代わりにそれを行うことができますmatch
。私は今日同様の質問に答えました:
var str = 'aaa (d) ddd (xc)',
results = [];
str.replace(/\(([^()]+)\)/g, function(a,b) { results.push(b) });
console.log(results); //=> ['d', 'xc']