2012-10-09 64 views
0

我想使用格式字符串解析字符串,如+stringWithFormat:…。使用相同的格式字符串打印和分析字符串會非常方便。只需要一個本地化。是否有NSString的格式字符串解析器?

實施例:

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

array應返回@[@"Bob"]。有沒有這樣一個開源項目試圖完成這個項目?我認爲應該可以將這種格式的字符串轉換成正則表達式。

回答

1

stringWithFormat是「只是」sprintf的前端;因爲它是普通的C,scanf及其變體也可以在需要時使用。

+0

好的建議。儘管採用Cocoa也不是微不足道的,因爲還有'%@'。 –

+0

將所有NSString轉換爲C字符串,並且您很好。 – Cyrille

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"] 
+0

解析器總是要處理含糊的問題。正則表達式也是如此。我會很好。 –