回答編集履歴
1
ソース修正
test
CHANGED
@@ -17,3 +17,25 @@
|
|
17
17
|
```
|
18
18
|
|
19
19
|
な感じかのう ➡ [サンプル](https://codepen.io/i8086x/pen/GREXWXa?editors=0012)
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
**追記:**
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
**最短マッチ** を使う方法もあるで。上のコードでは、`/aaa(([^)]+))/g` としていて、これの中にある `[^)]+` は、「`)`ではない文字の1つ以上の連続」を表して、この「`)`ではない文字」という指定をせずに、単に、
|
28
|
+
|
29
|
+
`/aaa((.+))/g` だと、`aaa(` と `)` に囲まれた文字は何でもよく、つまり `)`でもよいことになります。これに加えて、`+` や `*` はなるべく長い部分でマッチさせるので、`paragraph` に含まれる、最後の`)`でマッチすることになり、対になる`)`までの部分とマッチしてくれへんのや。そこでどうするかゆうたら、`+` や `*` の後に `?` を付けると、なるべく短くマッチしてくれるようになるねん。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
つまり、こないな正規表現
|
34
|
+
|
35
|
+
```javascript
|
36
|
+
|
37
|
+
const regex = /aaa((.+?))/g;
|
38
|
+
|
39
|
+
```
|
40
|
+
|
41
|
+
にしても、うまくいくで ➡ [サンプル](https://codepen.io/i8086x/pen/zYzJWwY?editors=0012)
|