什么是Delphi MatchesMask函数的C#等价物?

时间:2012-08-06 13:05:56

标签: c# delphi c#-4.0

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

帮助中描述的MatchesMask函数:

  

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

     

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

     

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

     

每组以开始括号([)开头,以收盘结束   括号(])。括号之间是集合的元素。每   element是文字字符或范围。范围由a指定   初始值,短划线( - )和最终值。不要使用空格或   用逗号分隔集合的元素。一组必须匹配一个   字符串中的字符。如果是,则字符与集合匹配   与集合中的一个文字字符相同,或者如果它在一个中   集合中的范围。如果字符匹配,则字符在范围内   初始值,最终值或两个值之间的值。所有   比较不区分大小写。如果第一个字符之后   一组开口括号是一个惊叹号(!),然后是一组   匹配任何不在集合中的字符。

     

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

     

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

     

注意:Filename参数不必是文件名。 MatchesMask可用于在语法上检查字符串   正确的面具。

2 个答案:

答案 0 :(得分: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);
        }
    }
}

您可以参考以下链接以获取快速参考

答案 1 :(得分:0)

您可以使用System.Text.RegularExpressions将数据与正则表达式进行比较以实现掩码