检查字符串在 C# 中是否具有指定的结构

本文关键字:结构 是否 字符串 检查 | 更新日期: 2023-09-27 18:07:20

我有一个字符串数组,我想检查我的任何字符串是否具有指定的结构。 例如,我的一个结构是这样的:

The value '{0}' is not valid for {1}.

如何在 C# 中执行此操作?

检查字符串在 C# 中是否具有指定的结构

如果你真的想用正则表达式来做(我认为就像玩火一样(,你可以......

public static Regex MakeRegex(string str)
{
    // We temporarily replace the {x} with '0
    str = string.Format(str, "'0", "'0", "'0", "'0", "'0", "'0", "'0", "'0", "'0", "'0");
    // Then we escape the regex, so that for example the . is changed
    // to '.
    str = Regex.Escape(str);
    // We replace the '0 we had added in the beginning with .*
    str = str.Replace("'0", ".*");
    // We add the ^ and $ to anchor the regex
    str = "^" + str + "$";
    // The regex is complete
    return new Regex(str);
}

然后

Regex rx = MakeRegex("The value '{0}' is not valid for {1}.");
bool ismatch = rx.IsMatch("The value '1' is not valid for Foo.");

请注意,我认为这不是一个好主意...但有些人喜欢玩火。

如果要

多次重用,则应缓存使用 MakeRegex 构建的rx

从我所做的一些迷你基准测试中,我注意到".*?"可能比".*"快一点(您更改str.Replace(...