【问题标题】:What is the C# equivalent of the Delphi MatchesMask function?Delphi MatchesMask 函数的 C# 等效项是什么?
【发布时间】:2012-08-03 11:03:59
【问题描述】:

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

帮助中描述的MatchesMask函数:

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

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

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

每个集合都以一个左括号 ([) 开始,并以一个右括号结束 括号 (])。括号之间是集合的元素。每个 element 是文字字符或范围。范围由 初始值、破折号 (-) 和最终值。不要使用空格或 逗号分隔集合的元素。一个集合必须匹配一个 字符串中的字符。字符匹配集合,如果它是 与集合中的文字字符之一相同,或者如果它在一个 集合中的范围。一个字符在一个范围内,如果它匹配 初始值、最终值或介于这两个值之间。全部 比较不区分大小写。如果后面的第一个字符 集合的左括号是感叹号(!),然后集合 匹配任何不在集合中的字符。

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

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

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

【问题讨论】:

  • 能否介绍一下这个功能?

标签: c# delphi c#-4.0


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2022-08-15
    相关资源
    最近更新 更多