C#.NET中的Delphi MatchesMask函数等效于什么?如何使用它,以及需要包含哪个命名空间引用?

MatchesMask函数,如帮助中所述:


  指示文件名是否符合由a指定的格式
  过滤字符串。
  
  调用MatchesMask以使用Mask检查Filename参数
  参数来描述有效值。有效的掩码由文字组成
  字符,集合和通配符。
  
  每个文字字符必须与字符串中的单个字符匹配。
  与文字字符的比较不区分大小写。
  
  每一组以一个开括号([)开始,以一个闭包结束
  方括号(])。括号之间是集合的元素。每
  element是文字字符或范围。范围由
  初始值,破折号(-)和最终值。请勿使用空格或
  以逗号分隔集合的元素。一组必须匹配一个
  字符串中的字符。如果是
  与集合中的文字字符之一相同,或者如果在一个字符集中
  集合中的范围。如果一个字符与
  初始值,最终值或介于两个值之间。所有
  比较不区分大小写。如果第一个字符之后
  集的开头括号是一个感叹号(!),然后集
  匹配不在集合中的任何字符。
  
  通配符是星号(*)或问号(?)。星号匹配
  任何数量的字符。一个问号匹配任意一个
  字符。
  
  如果字符串与掩码匹配,则MatchesMask返回true。火柴面具
  如果字符串与掩码不匹配,则返回false。火柴面具
  如果掩码在语法上无效,则引发异常。
  
  注意:Filename参数不必是文件名。 MatchesMask可用于根据语法检查字符串
  正确的面具。

最佳答案

现代编程语言提供了可进行模式匹配的正则表达式引擎。

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);
        }
    }
}


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


http://www.dotnetperls.com/regex-match(以上示例来自此站点)
http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet(快速备忘单-非常方便)
http://msdn.microsoft.com/en-us/library/ms228595(v=vs.80).aspx(MS编程参考)

关于c# - Delphi MatchesMask函数的C#等效项是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11828908/

10-12 02:54