2011-01-26 49 views
1

私は自分自身ではっきりとした正規表現を思いついてきましたが、これまで運がありませんでした。あなたのうちの一人が私の一日を作ることができれば幸いです正規表現の助けを借りて#

データ:

This_is.S0meNam3_.var01.tar 
This_is.S0meNam3_.var1.tar.gz 
This_is.S0meNam3_.tar.gz 

私はグループ

Group1 -> Group2 
This_is.S0meNam3_ -> .tar 
This_is.S0meNam3_ -> .tar.gz 
This_is.S0meNam3_ -> .tar.gz 

にLEATで持っていることを楽しみにして与えられたすべてのexmaplesを解析した後、私はそれがすべての理にかなって願っています。

ありがとう。

+0

'This_is-を何パターンS0meNam3'の部分は続きますか?文字と数字だけですか? – jjnguy

+0

それは全然意味がありません。基準は何ですか? '.tar.gz'と' .tar'だけを探していますか?それとも、他にもあなたが扱うことができるファイル拡張子がありますか? –

+0

私がしようとしているのは...任意のファイル拡張子を取り除き、文字列に.varXXが含まれている場合は削除する必要があります。 – user590723

答えて

2

次のことを試してみてください。

^(.*?)(?:\.var\d+)?((?:\.tar)?(?:\.gz)?|(?:\.(?:zip|rar)))$ 

これが唯一の可能な語尾が.zip.rar.tar.gz.tar.gzあり、そしてあなたが欲しいものはすべて、いくつかの数のフォーム.var<n>である削除されたことと仮定し<n>

This_is.S0meNam3_.tar.gzは、次の方法の全てにファイル名と拡張子に分割することができて、それは任意の拡張子を受け入れるように取得することは、さらにそれを狭めることなく、実際には不可能である。

This_is     - S0meNam3_.tar.gz 
This_is.S0meNam3_   - tar.gz 
This_is.S0meNam3_.tar  - gz 
+0

ほぼそこに...別のケースを追加できますか: This_is.S0meNam3_.zip This_is.S0meNam3_.var1.rar – user590723

+0

私の答えを変更しました。 –

+0

ありがとう - トップのもの! – user590723

関連する問題