質問: str.match(new RegExp(/,[0-9][0-9],/ ,'g')); console.log(matching); ``` を走らせた結果、 ,45, と ,10, が結果として帰ってきましましたが、 ,67 はマッチしませんでした。これは 123/,45,/67, 区切られて、67 がマッチしなかったためであることは理解しています。 私はこの67をマッチングさせる方法と、カンマだけをマッチさせる方法が知りたいです。
回答: "肯定先読み"というので対処できるかと思います。 ``` var str = "123,45,67,890,10,"; console.log("------------\n"); var matching = str.match(new RegExp(/,(?=[0-9][0-9],)/ ,'g')); console.log(matching); //[",", ",", ","] ``` ちなみに`^`は文頭を意味します(なので文頭が,で始まらないのでマッチしなかった) 一般に、パターンのうち一部だけが取り出したいときは`()`で囲むグルーピングを使うと思います。 正規表現の先読みや、正規表現のグルーピングで調べてみてください。