• ベストアンサー

PHPで文字列の一部を取り出したい

PHPで 文字列が、 SETING TIME: 00:00:32.421 と有った場合、 00:00:32.421 部分だけを取り出したい場合はどのようにすれば良いのでしょうか? よろしくおねがいします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

正規表現だとこんな感じ <?PHP $str="SETING TIME: 00:00:32.421"; $pattern="/(?<=SETING TIME: )\d{2}:\d{2}:\d{2}\.\d{3}/"; if(preg_match($pattern,$str,$match)){ print $match[0]; }

sumomone
質問者

お礼

正規表現というものが有るのですね。 ここの表現を変えると色々なフォーマットに対応で来そうですね。 ありがとうございます。

その他の回答 (2)

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

私だったら list(, $time) = explode(':', 'SETING TIME: 00:00:32.421', 2); $time = trim($time); って感じで処理しますね。

sumomone
質問者

お礼

なるほど、文字を抜き出す方法には色々なやり方があるんですね。 ありがとうございます。

noname#217950
noname#217950
回答No.1

いろんなやり方があるのでベストの方法かわかりませんが、参考までに… $settingTime = str_replace('SETING TIME: ','','SETING TIME: 00:00:32.421'); で、元の文字列から「SETING TIME: 」を空の文字列と入れ替えています。 trim系の関数を使うのが一般的なのかもしれませんが、どうも僕はtrim系の関数の挙動が不安定な気がして(おそらく僕の使い方が悪い)、こんなやり方をしてしまいます。

sumomone
質問者

お礼

trimを使うのが簡単そうですが、書き方によって挙動不振になる事が有るんですね。 ありがとうございます。