誰かがこの正規表現で私を助けることができますか?最後に「Created」文字列を含まない行に一致する式が必要です。このスクリプトは、一部のソースコードの見出しを読み取るために使用されています。
$string = "* JAN-01-2001 bugsbunny 1234 Created Module";
#$string = "* DEC-12-2012 bugsbunny 5678 Modified Module";
if($string =~ /^\*\s+(\w\w\w-\d\d-\d\d\d\d)\s+(\w+)\s+(\d+)\s+(?!Created)/){
print "$1\n$2\n$3\n$4\n";
} else {
print "no match\n";
}
最初の$string定義を使用する場合、最後に「Created」という単語が含まれているため、一致が失敗する必要があります。2番目の$string定義を使用する場合、それは合格するはずであり、日付($ 1)、ユーザー($ 2)、変更番号($ 3)、および説明($ 4)を引き出す必要があります。
上記の式は機能していません。何かアドバイスはありますか?