• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現の「^」と「$」がうまくいかない)

正規表現の「^」と「$」がうまくいかない

このQ&Aのポイント
  • 正規表現の「^」と「$」を使うとうまく働いてくれません。
  • あるデータの中の、行頭がhttpで始まる1行を取り出したいです。
  • 行頭から始まるものだけを出力するにはどうしたらいいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • sholmes
  • ベストアンサー率81% (89/109)
回答No.2

今回一番問題になっている箇所自体は、ANo1さんの仰っている修飾子の部分だと思います。 http://php.net/manual/ja/reference.pcre.pattern.modifiers.php これで解決だとは思うのですが、一応以下をコメントさせて下さい <おまけ> 正規表現はただでさえ読みづらくなる&重くなるので、用件を満たせる範囲でコンパクトに記述する事をお勧めします。 特にこのケースだと、行末指定や最短マッチ、キャプションの括弧等を利用する必要性が見受けられません 単にマッチ判定だけならこれでいいでしょうし /^http/m 今回のように抜き出す必要があるのであれば /^http.*/m https://ideone.com/T4MSJ でどうでしょうか。

q0190dg
質問者

お礼

ありがとうございます。 できました!!おーっと、っていう感じで無事出力されました。 修飾詞も理解が深まったので、本当に助かりました。 感謝申し上げます。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

preg_match_all("/^http(.*?)$/m",$data,$result); としたらうまくいくと思います。

q0190dg
質問者

お礼

一気解決です。 ありがとうございます。 修飾詞が必要だったとは気がつきませんでしたし、探しても出てこなかったのは検索力不足です。 邁進したいと思います。 感謝です!