字符串模式匹配 检查 C# 中的操作

本文关键字:操作 模式匹配 检查 字符串 | 更新日期: 2023-09-27 18:30:58

我需要开发处理基于模式的字符串比较的实用程序类的想法 例如:如果字符串是这种格式A_B_C_asdasd_asasd,如果我只想将部分正好B_C部分与其他字符串进行比较,实用程序类需要判断字符串是否有效,比如如果文件名是F1_2014_11_12_2013345980.dat, 我想比较字符串的一部分,比如说2014_11包含像2014这样的字符串,我不搜索整个字符串,我正在寻找通用方法,其中应用程序将具有配置值,该值告诉我以文件名格式搜索的模式并包含目标字符串。如果配置中没有提到任何值,我们可以匹配整个文件名。我们可以regex比较模式字符串

字符串模式匹配 检查 C# 中的操作

您可以使用正则表达式,对模式进行分组:

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

我不确定你需要如此详细。如果您尝试仅验证部分数据,请避免正则表达式的额外开销。

private static bool FindPortion(string input, string pattern)
{
     if(!string.IsNullOrEmpty(input) && !string.IsNullOrEmpty(pattern))
          if(input.Contains(pattern))
               return true;
     return false;
}

所以理论上你有:

  • 输入:11_10_2014_Random.dat
  • 图案:10_2014
  • 结果:True

包含将确保在返回 truefalse 的布尔值之前满足以下字符顺序。

此方法执行序号(区分大小写和 不区分文化)比较。搜索从第一个开始 此字符串的字符位置并继续到最后一个 角色位置

因此,由于大小的限制,您可以使用ToLower()ToUpper()或实现具有区域性信息的String.Compare来解释该变体。 根据当前信息和数据类型,区分大小写似乎不是问题。