是否有NSString的格式字符串解析器?

时间:2012-10-09 11:16:40

标签: iphone cocoa parsing nsstring

我想使用+stringWithFormat:…中的格式字符串来解析字符串。使用相同的格式字符串打印和解析字符串会非常方便。只需要一个本地化。

示例:

NSString *format = @"His name is \"%@\"";
NSString *string = [NSString stringWithFormat:format, @"Bob"];
NSArray *array = [string parseWithFormat:format];

array应该返回@[@"Bob"]。是否有这样一个开源项目试图实现这一目标?我认为应该可以将这种格式字符串转换为正则表达式。

2 个答案:

答案 0 :(得分:1)

stringWithFormat“只是”sprintf的前端;因为它是普通的C,scanf,如果需要,它的变体也可用。

答案 1 :(得分:0)

您描述parseWithFormat函数的方式,由于结构模糊,它无法工作。

格式替换的%@标记在结果字符串string中消失,因此生成的提取可能不明确。

示例

NSString *format = @"He likes %@ and %@.";
NSString *string = [NSString 
   stringWithFormat:format, @"apples and oranges", @"bananas"];
// --> @"He likes apples and oranges and bananas."
NSArray *array = [string parseWithFormat:format];
// Array could be:
// @[@"apples and oranges", @"bananas"] or 
// @[@"apples"  @"oranges and bananas"]