C# 解析 Apple 格式化字符串 (printf)

C# parse Apple formatted strings (printf)

我正在处理一些 Apple 格式的字符串,例如:

[%d] fsPurgeable type: %@, count: %lld bytes for %lld files

根据 Apple 的文档 here,格式字符串规范遵循 IEEE printf specification,并进行了一些修改。

我需要解析这些字符串,并将 % 类型的占位符替换为属于那里的实际数据。我最初的想法是使用 Regex,但是由于这些声称遵守 printf 规范,我想知道 .net 中是否已经有任何可能对此有所帮助的内容。

我已经阅读了一些资料,但我看不到任何立即跳出有用的内容。

有什么建议吗?

为了稍微回答我自己的问题,我最终编写了一个正则表达式来处理解析:

var regex = new Regex(@"(?i)%[dspublicxfegahztj{}@%]*");

(?i) = 不区分大小写的标志

% = 文字百分号

[dspublicxfegahztj{}@%] = %

后面的所有有效字符

* = 匹配零个或多个字符,例如%lld

仍然好奇 .Net 中是否有任何东西可以处理这种事情