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 中是否有任何东西可以处理这种事情
我正在处理一些 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 中是否有任何东西可以处理这种事情