• 締切済み

マッチデータの表示方法

$v_date =~ s/-//g; #v_date 091211 $str_date = substr($v_date, 0, 4); #str_date 0912 をまとめて記述する方法はありますか? また、フォームからの日付(年月)と上記でセットした$str_dateをマッチさせたデータを表示させたいのですがその場合の記述方法を教えていただけないでしょうか?

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.4

具体的な目的とか情報が少ないので的外れかもしれませんが、 元データが「09-12-11」という正しい書式になっているかどうかのチェックと、「0912」を取り出すのと、両方をまとめて書くなら、以下でどうですか? ($str_date = $v_date) =~ s/^(\d{2})-(\d{2})-\d{2}$/$1$2/ or die '書式エラー';

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

おっともう一個あったのね。 >また、フォームからの日付(年月)と上記でセットした$str_dateをマッチさせたデータを表示させたいのですが 何がやりたいのか良くわからないのだけど、 たとえば $str_data に 0902 が入ってきたとして、フォームからの 入力の年月がそれと等しいとか言う話ですか?

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

これ、置換する前の書式は 09-12-11 とかですか? だとしたら、substr 二つくっつればいいんじゃないんでしょうか。 use strict; use warnings; use feature 'say'; my $v_data = '09-12-11'; my $str_data = substr($v_data, 0, 2) . substr($v_data, 3, 2); say $str_data; 一個のオペレーションでとか欲張らないほうが良いと思います。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

単に「まとめる」だけならいくらでも (とはいわんけど) 方法は考えられるな. 例えば $str_date = substr($v_date = join('', split(/-/, $_)), 0, 4); とか. もちろん他にもいろいろある.

関連するQ&A

専門家に質問してみよう