質問に
const regex = /aaa(*)/g;
とありよって、正規表現にg
フラグがあるゆうことは、aaa(b1d2)
みたいな aaa
のやつは、 paragraph
ん中に複数出てくることがあって、それらの全部について、丸カッコの中だけ取ってきたいゆう話やと思うたで。それやったら、こない
javascript
1const regex = /aaa(([^)]+))/g;
2const found = Array.from(paragraph.matchAll(regex), m => m[1]);
な感じかのう ➡ サンプル
追記:
最短マッチ を使う方法もあるで。上のコードでは、/aaa(([^)]+))/g
としていて、これの中にある [^)]+
は、「)
ではない文字の1つ以上の連続」を表して、この「)
ではない文字」という指定をせずに、単に、
/aaa((.+))/g
だと、aaa(
と )
に囲まれた文字は何でもよく、つまり )
でもよいことになります。これに加えて、+
や *
はなるべく長い部分でマッチさせるので、paragraph
に含まれる、最後の)
でマッチすることになり、対になる)
までの部分とマッチしてくれへんのや。そこでどうするかゆうたら、+
や *
の後に ?
を付けると、なるべく短くマッチしてくれるようになるねん。
つまり、こないな正規表現
javascript
1const regex = /aaa((.+?))/g;
にしても、うまくいくで ➡ サンプル
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/12 05:28