字符串模式匹配 检查 C# 中的操作
本文关键字:操作 模式匹配 检查 字符串 | 更新日期: 2023-09-27 18:30:58
我需要开发处理基于模式的字符串比较的实用程序类的想法 例如:如果字符串是这种格式A_B_C_asdasd_asasd
,如果我只想将部分正好B_C
部分与其他字符串进行比较,实用程序类需要判断字符串是否有效,比如如果文件名是F1_2014_11_12_2013345980.dat
, 我想比较字符串的一部分,比如说2014_11
包含像2014
这样的字符串,我不搜索整个字符串,我正在寻找通用方法,其中应用程序将具有配置值,该值告诉我以文件名格式搜索的模式并包含目标字符串。如果配置中没有提到任何值,我们可以匹配整个文件名。我们可以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);
}
}
}
我不确定你需要如此详细。如果您尝试仅验证部分数据,请避免正则表达式的额外开销。
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
包含将确保在返回 true 或 false 的布尔值之前满足以下字符顺序。
此方法执行序号(区分大小写和 不区分文化)比较。搜索从第一个开始 此字符串的字符位置并继续到最后一个 角色位置
因此,由于大小写的限制,您可以使用ToLower()
或ToUpper()
或实现具有区域性信息的String.Compare
来解释该变体。 根据当前信息和数据类型,区分大小写似乎不是问题。