当前位置:  开发笔记 > 编程语言 > 正文

.NET中有'sscanf()'吗?

如何解决《.NET中有'sscanf()'吗?》经验,为你挑选了3个好方法。

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

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

我想要一个"Unformat"功能,例如:

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

我知道ANSI-C库中存在类似的东西(printf vs scanf).

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

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



1> mqp..:

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

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"?

针对此问题制作正则表达式捕获 组 ; 你可能想看看它们.



2> annakata..:

正则表达式与分组?

/This (.*?) very (.*?)./



3> Jonathan Woo..:

如果有人有兴趣,我刚刚发布了scanf().NET 的替代品.如果正则表达式没有为你完全删除它,我的代码scanf()非常接近格式字符串.

您可以在http://www.blackbeltcoder.com/Articles/strings/a-sscanf-replacement-for-net上查看和下载我编写的代码.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有