一些有关c#中正则表达式的帮助

时间:2011-01-26 14:35:02

标签: c# regex

我一直在努力想出自己的厚脸皮,但到目前为止还没有运气。我希望你们中的一个能够度过我的一天!

数据:

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

在解析了所有给定的exmaples之后,我期待着对组的了解

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

我希望这一切都有道理。

谢谢你。

1 个答案:

答案 0 :(得分: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