2012-08-06 78 views
1

什么是C#.NET中的Delphi MatchesMask函数的等价物?我该如何使用它,以及需要包含哪些名称空间参考?什么是Delphi MatchesMask函数的C#等价物?

在帮助中描述的MatchesMask功能:

指示文件名是否符合由 过滤字符串指定的格式。

Call MatchesMask使用参数Mask 来检查Filename参数来描述有效值。有效掩码由文字 字符,集合和通配符组成。

每个文字字符必须与字符串中的单个字符匹配。 与文字字符的比较不区分大小写。

每组以一个开头括号([)开始并以结束 括号(])结束。括号之间是该集合的元素。每个 元素是文字字符或范围。范围由 初始值,破折号( - )和最终值指定。请勿使用空格或逗号分隔组中的元素。一个集合必须匹配字符串中的单个 字符。如果该字符与该集合中的一个文字字符相同,或者该集合中的范围在一个 之内,则该字符与该集合匹配。如果字符与 的初始值(最终值)匹配,或者落在两个值之间,则该字符处于一个范围内。所有的 比较是不区分大小写的。如果集合中的第一个字符后面的第一个字符是感叹号(!),则集合 与任何不在集合中的字符匹配。

通配符是星号(*)或问号(?)。星号匹配 任意数量的字符。问号与单个任意 字符匹配。

如果字符串匹配掩码,MatchesMask返回true。如果字符串与掩码不匹配,MatchesMask 将返回false。如果掩码在语法上无效,MatchesMask 会引发异常。

注意:Filename参数不需要是文件名。 MatchesMask可用于检查字符串是否符合任何语法上的 正确的掩码。

+0

能否介绍一下这个功能? – 2012-08-06 13:07:52

回答

0

你可以使用System.Text.RegularExpressions将数据与正则表达式相比较来实现面具

5

现代编程语言提供了正则表达式引擎,它允许做的模式匹配算法。

C#提供可在下列方式使用Regex类:

using System; 
using System.Text.RegularExpressions; 

class Program 
{ 
    static void Main() 
    { 
     // First we see the input string. 
     string input = "/content/alternate-1.aspx"; 

     // Here we call Regex.Match. 
     Match match = Regex.Match(input, @"content/([A-Za-z0-9\-]+)\.aspx$", 
      RegexOptions.IgnoreCase); 

     // Here we check the Match instance. 
     if (match.Success) 
     { 
      // Finally, we get the Group value and display it. 
      string key = match.Groups[1].Value; 
      Console.WriteLine(key); 
     } 
    } 
} 

可以参考以下链接为快速参考

+0

问题解决。谢谢 – 2012-08-08 09:11:19

+1

如果这是解决方案,请接受答案:http://meta.stackexchange.com/questions/5234/ – 2012-08-08 10:19:34

相关问题