【问题标题】:C# String.Format matching a string [closed]C# String.Format 匹配字符串 [关闭]
【发布时间】:2016-05-02 20:36:40
【问题描述】:

我正在尝试找出一种方法,将使用 String.Format 创建的字符串与原始字符串匹配,但我不知所措。

假设我有“需要 {0}”并且我用它来创建“需要电子邮件”和 String.Format("{0} is required", "Email"); 如果我只有“需要 {0} 并且有一个简单的方法来匹配它们吗? “需要电子邮件”?

我的总体目标是创建一个字符串列表,例如“需要 {0}”、“{0} 必须包含 {1}”等,并且能够找到像“电子邮件”这样的字符串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}”

【问题讨论】:

  • 呃,你能提供一些实际样本吗?你是说你有 2 个字符串:{0} is requiredEmail is required,你想看看后者是否与第一个的 String.Formated 版本的潜在匹配?我猜你必须手动完成,这听起来很糟糕。

标签: c# string pattern-matching


【解决方案1】:

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

【讨论】:

  • 是的。即使是正则表达式也不会 100% 可靠,因为即使匹配字符串的不可替换部分,您也不知道标记的顺序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 2018-06-21
  • 1970-01-01
  • 2014-10-29
  • 2020-04-10
  • 1970-01-01
相关资源
最近更新 更多