C#字符串。与字符串匹配的格式

C#字符串。与字符串匹配的格式,c#,string,pattern-matching,C#,String,Pattern Matching,我正试图找出一种方法来匹配使用string.Format创建的字符串,但我还是不知道如何将其恢复为原始字符串 假设我有“{0}是必需的”,我用它来创建带有String.Format(“{0}是必需的”,“Email”)的“Email是必需的”如果我只有“{0}是必需的”和“电子邮件是必需的”,是否有一种简单的方法来匹配它们 我的总体目标是有一个字符串列表,如“{0}是必需的”,“{0}必须包含{1}”等,并且能够找到一个字符串,如“Email is required”或“Email must c

我正试图找出一种方法来匹配使用string.Format创建的字符串,但我还是不知道如何将其恢复为原始字符串

假设我有“{0}是必需的”,我用它来创建带有
String.Format(“{0}是必需的”,“Email”)的“Email是必需的”如果我只有“{0}是必需的”和“电子邮件是必需的”,是否有一种简单的方法来匹配它们

我的总体目标是有一个字符串列表,如“{0}是必需的”,“{0}必须包含{1}”等,并且能够找到一个字符串,如“Email is required”或“Email must contain a@”可以匹配的字符串

例如,使用以下列表并返回最匹配的字符串:

"Email must contain a @"

{
"{0} is required", 
"{0} must be a {1}", 
"{0} must be between {1} and {2} characters",
"Invalid format",
}

所以我希望“{0}”是必需的“返回

不,没有简单的方法可以满足您的要求。
String.Format
没有保留格式/模板字符串的内置功能。您的问题可能有解决方案,但您必须自己实施。

嗯,您能提供一些实际的示例吗?你是说你有两个字符串:
{0}是必需的
电子邮件是必需的
,你想看看后者是否是第一个字符串的
格式的潜在匹配版本吗?我想你得手工做,这听起来很糟糕。是的。即使正则表达式也不是100%可靠的,因为即使匹配字符串中不可替换的部分,也不知道令牌的顺序。