正規表現を使用して、テキスト ファイルからさまざまな形式の年のセットを識別して引き出すスクリプトを作成しています。問題のコードは次のとおりです。
if ($parts[0] =~ /^\(*(\d\d\d\d)\)*$/) {
# Matches a single 4 digit date in parentheses such as (1979)
$start = $1;
$end = $1;
}
elsif ($parts[0] =~ m{\d\d\d\d\/\d\d\d\d} ) {
# Matches cases like 1948/1972
warn "Found a $1";
#do some other stuff
}
私が直面している問題は、 の式に一致する日付を見つけたelsif
が$1
、値を保持していないことです。つまり、"Found a "
メッセージを何度も出力しますが、 の値はありません$1
。ここで私が間違っていることを教えてもらえますか? ばかげた間違いでしたら申し訳ありません。
ありがとう!