長いリストのファイルがあり、その拡張子に基づいて意思決定を試みています。この全体は私のperlプログラムの一部でなければなりません。ここでは、リストの例です:正規表現を使用してファイルリスト内のファイル拡張子を識別するPerl
a.pj
b.pj
null
c.xlsx
gibberishWithNoExtension
d.pj
f.docx
g.pj 1.17 and 1.15.1.1
決定ルールは以下のとおりです。
1) If the extension is ".pj" do something.
2) If the extension is anything else do something else
3) If there is something else after the extension (like version numbers) or there is no extension at all: ignore it
最初のポイントはかなり簡単にする必要があります。私はそれがこのようになると思う:
my $string = a.pj;
if ($string =~ /.pj/) {
say 'success!'
}
しかし、私は他の場合に立ち往生しています。特にポイント3を特定することになります。正しい正規表現を見つける手助けをする人がいますか?
私はあなたのソリューションには満足していますが、私はそれがうまくいかないケースを見つけました。空白を含まないファイルがありますが、拡張子の後にバージョン番号が入っています( 'xyz.pj1.4.0'のようなもの)。どうすればそれを捕まえることができますか? – UsefulUserName
@UsefulUserName:どのように分類しますか? 1,2,3のように?あるいは、そのような場合に新しいクラスを追加したいですか? – choroba
ケース3.適切にフォーマットされていないものは除外/無視する必要があります。 – UsefulUserName