c# - 解析 FileDialog 的过滤器列表

标签 c# .net

如果我有这样的过滤器字符串(FileDialog 的过滤器):

"Image Files (*.bmp, *.jpg)|*.bmp;*.jpg|All Files (*.*)|*.*"

C# 中是否有一个函数可以为我提供此过滤器中所有扩展的列表?

这是

"*.bmp", "*.jpg" and "*.*"

最佳答案

你可以用这个正则表达式来做:

(?<Name>[^|]*)\|(?<Extension>[^|]*)\|?

这是一个示例代码:

var regex = new Regex(@"(?<Name>[^|]*)\|(?<Extension>[^|]*)\|?");
var matches = regex.Matches(@"Image Files (*.bmp, *.jpg)|*.bmp;*.jpg|All Files (*.*)|*.*");
foreach (Match match in matches)
{
    Debug.Print("Name: '{0}' Extension:'{1}'", match.Groups["Name"].Value, match.Groups["Extension"].Value);
}

关于c# - 解析 FileDialog 的过滤器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531104/

相关文章:

c# - SelectedIndex 在下拉列表中始终为 0(asp.net c#)

c# - 垃圾收集和作用域在 C# 中是如何工作的?

c# - 将 IFoo<T> 转换为 IFoo<object> 的一般方法

c# - 在基类中实现 IEquatable

c# - 使用委托(delegate)创建表单但从未完成的异步方法

c# - Linq 2 Sql插入没有关系

c# - C#中 "if(object is type)"的速度

c# - 在C#源代码中使用特殊字符是否错误,例如 "ñ"?

.net - VB.NET 项目属性命名空间与导入语句?

.net - 如何使用 RestSharp 发布原始 Json?