检查字符串在 C# 中是否具有指定的结构
本文关键字:结构 是否 字符串 检查 | 更新日期: 2023-09-27 18:07:20
我有一个字符串数组,我想检查我的任何字符串是否具有指定的结构。 例如,我的一个结构是这样的:
The value '{0}' is not valid for {1}.
如何在 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
(...