如果我有这样的过滤器字符串(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/