Perlの正規表現を使って文字列をまとめて取得する方法
小粋空間 » Programming Language » Perl » Perlの正規表現を使って文字列をまとめて取得する方法
Perlの正規表現で文字列をまとめて取得する方法を紹介します。
1.問題点
Perlで次のようなタイムスタンプの変数を設定します。
my $timestamp = '2021-04-11 12:34:56';
このタイムスタンプんの年月日時分秒をそれぞれ別の変数に取得したいのですが方法がわかりません。
ちなみに、特定の文字列であれば、次のような構文で取得できます。
( my $year = $timestamp ) =~ s/^(\d{4})-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}$/$1/;
ということで、Perlの正規表現を使って文字列をまとめて取得する方法を紹介します。
2.対処方法
文字列をまとめて取得するには次のようにパターンマッチ演算子(m//)で記述します。
my ( $year, $month, $day, $hour, $minute, $second )
= $timestamp
=~ m!^(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})$!;
これで、$year, $month, $day, $hour, $minute, $secondの各変数に、年月日時分秒をそれぞれ設定されます。