ファイル名のプレフィックスが発生するインスタンスの数をカウントするために、ファイル名を解析するための正規表現を探しています。ここにいくつかのサンプル文字列があります
手袋.tga 10ジーンズ.jpg シャツ1.png シャツ2.png coat_00.png coat_12.gif top1_01.png top2_04.png
基本的なパターンは、文字または数字の文字列とそれに続く拡張子です。プレフィックスは拡張子の前のすべてです (ピリオドを除く)
1 つの衣類が複数のファイルにまたがっている場合があります。これは、衣類の名前、アンダースコア、インデックス番号、拡張子で示されます。プレフィックスはアンダースコアまでのすべてですが、アンダースコアは含みません。それ以外はすべて無視できます。
これは私が扱っているすべてのケースをカバーしていますが、あるケースにはアンダースコアがあり、他のケースにはないという事実に対処するのに問題があります。
誰かがこれの正規表現を考え出すのを手伝ってくれますか?
編集: 追加の条件があるようです: shirt1 と shirt2 は同じプレフィックスとして扱われるべきです。
したがって、文字列の後にいくつかの数字が続き、その直後に拡張子が続く場合、数字は無視されますが、数字の後にアンダースコアが続く場合、それらはプレフィックスに保持されます。