首页 > 解决方案 > String.Format 派生自字符串“{0}(长度要求 20)”

问题描述

我从一个已经采用 String.Format 格式的 Web api 接收字符串。收到的字符串可能是:

"{0} (Length required 20)"
"{0} {1} (Length required 20)(Mandatory)"

是否可以创建一个等于

String.Format("{0}","Length required 20");
String.Format("{0} {1}","Length required 20","Mandatory");

从这些字符串

标签: c#string.format

解决方案


在 C# 中使用正则表达式;您可以使用Regex.Matches和以下正则表达式提取参数。

(\(.*?\))

然后,您可以使用Regex.Replace和此正则表达式来确定要替换的内容

\{[0-9]+\}

并从第一个正则表达式(按匹配顺序保留)中生成的匹配替换这些占位符

如果您不知道正则表达式,您可以在此正则表达式检查器中检查您的正则表达式,您可以在这里查看正则表达式

注意:这不适用于在要替换 {no.} 的文本中包含 '(' 或 ')' 的字符串。


推荐阅读