プログラミング基礎

正規表現『*(アスタリスク)』の意味について

正規表現『*(アスタリスク)』の意味は?

直前の文字の0回以上の繰り返しにマッチします。

「正規*表現」

で検索すると「*」直前の文字が「規」なので、

「正規規規表現」(直前の文字の3回の繰り返し)

「正表現」(直前の文字の1回の繰り返し)

「正表現」(直前の文字の0回の繰り返し)

がマッチします。

一方

「表現」(「正」の字がない)

「制表現」(「正」の字がない)

「正気表現」(「正」と「表現」の間に「気」が入っている)

はマッチしません。

0回以上の繰り返しなので注意が必要

感のするどい人はわかると思いますが、『直前の文字の0回以上の繰り返し』なので、

例えば「規*」で検索したらどうなるでしょう?

 

 

 

答えは検索対象すべてがマッチします。

直前の「規」の文字があろうがなかろうが、マッチするわけです。

実際どういう時に使うの?

「*」単体では使う機会は少ないと思います。「.」と合わせて使うことが多いと思います。

「.」の意味は「任意の1文字にマッチ」なので、

「.*」だと「任意の文字列」となります。

例えば「正.*表現」だと

「正規表現」、「正規規規表現」、「正木木木表現」、「正アイスクリーム食べたい表現」、「正規表現正規表現正規表現」、

がマッチします。

また、この場合「世紀表現」はマッチしません。