[英]Regex to get the file extension
我有一个包含文件名的列表(没有完整路径)
List<string> list=new List<string>();
list.Add("File1.doc");
list.Add("File2.pdf");
list.Add("File3.xls");
foreach(var item in list) {
var val=item.Split('.');
var ext=val[1];
}
我不想使用String.Split
,我将如何使用正则表达式获取文件的扩展名?
您不需要为此使用正则表达式。 您可以使用Path.GetExtension
方法。
返回指定路径字符串的扩展名。
string name = "notepad.exe";
string ext = Path.GetExtension(name).Replace(".", ""); // exe
这是一个DEMO
。
要使用正则表达式获取扩展名:
foreach (var item in list) {
var ext = Regex.Match( item, "[^.]+$" ).Value;
}
或者,如果您想确保有一个点:
@"(?<=\.)[^.]+$"
您可以使用Path.GetExtension()
。
示例(也删除了点):
string filename = "MyAwesomeFileName.ext";
string extension = Path.GetExtension(filename).Replace(".", "");
// extension now contains "ext"
正则表达式是
\.([A-Za-z0-9]+)$
转义句点、1 个或多个字母数字字符、字符串结尾
您也可以使用 LastIndexOf(".")
int delim = fileName.LastIndexOf(".");
string ext = fileName.Substring(delim >= 0 ? delim : 0);
但是使用内置函数总是更方便。
"\\\\.[^\\\\.]+"
匹配任何以.
字符后跟 1 个或多个 no .
人物。
顺便说一句,其他人是对的,正则表达式在这里是矫枉过正。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.