プロが教える店舗&オフィスのセキュリティ対策術

「*」を調べたら、「直前の表現の0回以上の繰り返しにマッチ」て書いてあったのですが、
「0回以上」の意味が良く分かりません。

例えば、

preg_replace("/[a-z0-9\-\.]/", "○", "ABCabcXYZxyz");の実行結果が、
「ABC○○○XYZ○○○」となるのは分かるのですが、

preg_replace("/[a-z0-9\-\.]*/", "○", "ABCabcXYZxyz");の実行結果は、
どうして、「○A○B○C○○X○Y○Z○○」になるのでしょうか?

A 回答 (1件)

「0回以上」の意味はさておき、


「文字クラス」はおわかりですよね。
それで、
正規表現を使うときには期待する結果があるはずですが、re999さんはどんな結果を期待しているのでしょう。
結果に ABC○○○XYZ○○○ を期待するなら、/[a-z0-9\-\.]{1}/ です。
結果に ABC○XYZ○ を期待するなら、/[a-z0-9\-\.]{1,}/ です。
ということで、「0回以上」の意味はおわかりですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございましたー

お礼日時:2012/01/21 04:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!