簡體   English   中英

Delphi MatchesMask函數的C#等效項是什么?

[英]What is the C# equivalent of the Delphi MatchesMask function?

C#.NET中的Delphi MatchesMask函數等效於什么? 如何使用它,以及需要包含哪個命名空間引用?

MatchesMask函數,如幫助中所述:

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

調用MatchesMask以使用Mask參數描述有效值來檢查Filename參數。 有效的掩碼由文字字符,集合和通配符組成。

每個文字字符必須與字符串中的單個字符匹配。 與文字字符的比較不區分大小寫。

每組都以一個中括號([)開始,以一個中括號(])結尾。 括號之間是集合的元素。 每個元素都是文字字符或范圍。 范圍由初始值,破折號(-)和最終值指定。 不要使用空格或逗號分隔集合中的元素。 集合必須與字符串中的單個字符匹配。 如果該字符與集合中的文字字符之一相同,或者位於集合中的范圍之一內,則該字符與該集合匹配。 如果字符與初始值,最終值匹配,或者介於兩個值之間,則該字符在范圍內。 所有比較均不區分大小寫。 如果集合開頭括號后面的第一個字符是感嘆號(!),則該集合與集合中未包含的任何字符匹配。

通配符是星號(*)或問號(?)。 星號匹配任意數量的字符。 問號與單個任意字符匹配。

如果字符串與掩碼匹配,則MatchesMask返回true。 如果字符串與掩碼不匹配,則MatchesMask返回false。 如果掩碼在語法上無效,則MatchesMask會引發異常。

注意: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);
        }
    }
}

您可以參考以下鏈接以快速參考

您可以使用System.Text.RegularExpressions將數據與正則表達式進行比較以實現掩碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM