c# - 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# 中使用正则表达式;您可以使用Regex.Matches和以下正则表达式提取参数。
(\(.*?\))
然后,您可以使用Regex.Replace和此正则表达式来确定要替换的内容
\{[0-9]+\}
并从第一个正则表达式(按匹配顺序保留)中生成的匹配替换这些占位符
如果您不知道正则表达式,您可以在此正则表达式检查器中检查您的正则表达式,您可以在这里查看正则表达式。
注意:这不适用于在要替换 {no.} 的文本中包含 '(' 或 ')' 的字符串。
推荐阅读
- elasticsearch - 弹性堆栈映射器解析
- html - 如何在响应式网页的可滚动表格下方的 W3.CSS 中创建粘性页脚?
- django - 序列化来自多个模型 django 的数据
- json - 使用适当的转义从 Nustache 生成 JSON
- json - 如何使用 REST API 在 TFS Source Control 2015 中移动/重命名文件?
- javascript - 如何从 Promise 对象中获取内容?节点
- json - json 中的 bash 中的“转义”
- c - 从 .txt 文件中读取不同的数据类型
- flutter - 颤振列表视图不可见
- python - 在 PYTHON 中反转数组并打印数组 A 的元素与数组 A 反转的相应元素的总和