.net - .NET 中是否有相当于 'sscanf()' 的值?

标签 .net string

.NET Framework 为我们提供了 Format方法:

string s = string.Format("This {0} very {1}.", "is", "funny");
// s is now: "This is very funny."

我想要一个“取消格式化”功能,例如:

object[] params = string.Unformat("This {0} very {1}.", "This is very funny.");
// params is now: ["is", "funny"]

我知道 ANSI-C 库中存在类似的东西( printfscanf )。

问题:C# 中有类似的东西吗?

更新:使用正则表达式捕获组不是我需要的解决方案。它们也是一种方式。我正在寻找一个可以以单一格式双向工作的系统。放弃一些功能(如类型和格式信息)是可以的。

最佳答案

没有这样的方法,可能是因为解决歧义问题:

string.Unformat("This {0} very {1}.", "This is very very funny.")
// are the parameters equal to "is" and "very funny", or "is very" and "funny"?

正则表达式capturing groups是针对这个问题而设计的;您可能想研究一下它们。

关于.net - .NET 中是否有相当于 'sscanf()' 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/492262/

相关文章:

c# - 在 .net 中的两个项目之间共享 dll

javascript - 仅大写缩写中的第一个字母

.net - 在IL中初始化大量数据

c# - C# 枚举中具有相同整数值的元素的排序

regex - 如何根据特定模式分割 CSV 行

android - 类型不匹配 : inferred type is String but Charset was expected in kotlin

C 字符数组的大小

c# - 在这种情况下如何正确使用 .ToLower() ?

c# - 进程终止后清理 AppBar

C# Winforms 时间轴控件(来自 WTL?)