0

Environment - SharePoint Workflow (.net tech)

Trying to get extension of a file name (sometime it's doc or docx or dwg or xlsx).

I got this \..+ or this \.[^\.]+$ to give me the file name. I need another expression that will give me the extension. I guess I need an expression that will look for the last period and give me the string.

4

2 回答 2

4

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

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

于 2013-08-21T12:40:25.060 回答
2

它会是这样的:

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

这意味着:([^\\/.]*)任何数量的任何非点非路径字符,后跟 end-of-the-string $。非点字符前面必须有一个(?<=\.)不会被捕获的点。(所以没有扩展名的文件名被捕获为具有空白扩展名)

\注意内部逃逸[]

一些有趣的测试用例:

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

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

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

于 2013-08-21T12:54:30.947 回答