hh:mm:ss 形式の文字列が 1 回以上含まれています。この正規表現を作成して、グループ化で時間を節約しようとしたので、いくつかの作業を行うことができました。
if ( $s =~ /(.*)(\d{2}:\d{2}:\d{2})(.*)(\d{2}:\d{2}:\d{2})(.*)(\d{2}:\d{2}:\d{2})(.*)/ )
{
my @t = ( $2, $5, $8 );
# loop through times and do stuff
}
else
{
# no match found
}
問題は、文字列に 1 つ、2 つ、または 3 つの時間が埋め込まれている可能性があることです。この正規表現は、3 つすべてが存在する場合にのみ機能するようです (1 つまたは 2 つではありません)。これを行うためのより良い方法はありますか (そして、「初期化されていない値の使用」警告を回避するために!)?
I tried this, but then it only grabs the last time:
/(.*)(\d{2}:\d{2}:\d{2})(.*)(\d{2}:\d{2}:\d{2})?(.*)(\d{2}:\d{2}:\d{2})?(.*)/