phpでpreg_match_all()を使って、"<p>Red</p> or <p>Green</p>" から「<p>Red</p>」と「<p>Green</p>」を別々に取得したかったんだけれど。 どうやっても「<p>Red</p> or <p>Green</p>」って取れちゃう。 取れすぎだから。 要は最初の<p>から最後の</p>まで全部がキャプチャされちゃう模様。 という正規表現ビギナーらしい?罠にはまりました。。 で、色々調べた結果、「最短一致」というキーワードに辿りつきました。 辿り着くのに数時間かかったし…。 いやー。初心者が「最短一致」って言葉なんて知らないってば。 ということで"/<p>.*<\/p>/"を"/<p>.*?<\/p>/"に変えればOKでした。 ?(最少量指定子)を付けると最初にマッチした(この場合は</p>が見つかった)時点で検索をやめます。 ?をつけな