回答編集履歴
3
typo修正
answer
CHANGED
@@ -36,6 +36,6 @@
|
|
36
36
|
|
37
37
|
今までの書き方では、`()`, `[]` がネストされたパターンには対応できません。
|
38
38
|
ネストされたパターンに対応する為には `(` と同じ数だけ `)` を消費しなければなりませんが、`(` の数をカウントして正規表現パターンに反映させる手段が用意されていないからです。
|
39
|
-
対応する為には `RegExp.prototype.exec`
|
39
|
+
対応する為には `RegExp.prototype.exec` で繰り返しマッチさせる必要があります。
|
40
40
|
|
41
41
|
Re: ponsea さん
|
2
再帰処理である必要はありませんでした
answer
CHANGED
@@ -36,6 +36,6 @@
|
|
36
36
|
|
37
37
|
今までの書き方では、`()`, `[]` がネストされたパターンには対応できません。
|
38
38
|
ネストされたパターンに対応する為には `(` と同じ数だけ `)` を消費しなければなりませんが、`(` の数をカウントして正規表現パターンに反映させる手段が用意されていないからです。
|
39
|
-
対応する為には `RegExp.prototype.exec` を
|
39
|
+
対応する為には `RegExp.prototype.exec` を繰り返しマッチさせる必要があります。
|
40
40
|
|
41
41
|
Re: ponsea さん
|
1
ネスト\(入れ子\)された括弧を考慮しなくて良いのであれば
answer
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
# String.prototype.match
|
20
20
|
|
21
21
|
`String.prototype.match` は消費した文字列を配列化する為、正しい文字列パターンを指定すれば同じ場所に2回マッチする事はありません。
|
22
|
+
後述のネスト(入れ子)された括弧を考慮しなくて良いのであれば、このコードは質問文の要件を満たします。
|
22
23
|
|
23
24
|
```JavaScript
|
24
25
|
'use strict';
|