正则表达式获取扩展名 - .net

时间:2013-08-21 12:38:54

标签: .net regex sharepoint

环境 - SharePoint Workflow(.net tech)

尝试获取文件名的扩展名(有时是doc或docx或dwg或xlsx)。

我得到了这个\..+或此\.[^\.]+$来给我文件名。我需要另一个能给我扩展的表达式。我想我需要一个表达式来查找最后一段时间并给我字符串。

2 个答案:

答案 0 :(得分:4)

使用Path.GetExtension(fileName)而不是创建正则表达式 - 它在文件名中查找最后.并返回带扩展名的子字符串。

更新:如果必须是正则表达式,请尝试\.[0-9a-z]+$

答案 1 :(得分:2)

这将是:

@"(?<=\.)([^\\/.]*)$"

这意味着:([^\\/.]*)任何数字中的任何非点非路径字符,后跟字符串结尾$。非点字符前面必须有一个不会被捕获的点(?<=\.)。 (因此没有扩展名的文件名被捕获为具有空白扩展名)

请注意\

[]的转义

一些有趣的测试用例:

C:\My.Path\Filename
C:\My.Path\Filename.ext
C:\My.Path\Filename.ext.ext2
..\Filename
..\Filename.ext

测试员:http://regexr.com?361pu

我要补充说Path.GetExtensions 正确的工具来完成这项工作。