私の入力文字列は次のようになります。
1 warning: rg: W, MULT: file 'filename_a.h' was listed twice.
2 warning: rg: W, SCOP: scope redefined in '/proj/test/site_a/filename_b.c'.
3 warning: rg: W, ATTC: file /proj/test/site_b/filename_c.v is not resolved.
4 warning: rg: W, MULTH: property file filename_d.vu was listed outside.
上記のように、4つの異なるフレーバーがあります。これらをログファイルから1行ずつ読み取ります。
パスが指定されているもの(2、3行目)の場合、を使用してファイル名を抽出でき$file=~s#.*/##;
、正常に機能しているようです。異なるタイプの条件ステートメントを使用せず、ファイル名を抽出する方法はありますか?クリーンな正規表現を1つだけ使用して、ファイル名を抽出したいと思います。File::basename
この場合もPerlは動作しません。
私はPerlを使用しています。