使用正则表达式从NSString中提取文本

时间:2011-09-12 15:35:13

标签: ios regex nsstring nsregularexpression

我有这种格式的NSString:

“键1-值1,密钥2-值2,密钥3-值3,...”

我只需要键(每个逗号后面都有一个空格):

Key1,Key2,Key3等

我想用逗号作为分隔符从字符串创建一个组件数组,然后,对于每个组件,从“ - ”开始提取所有字符;然后我会序列化数组元素。但我担心这对表演来说会非常沉重。

你知道使用正则表达式的方法吗?

1 个答案:

答案 0 :(得分:2)

正则表达式将在很大程度上取决于您使用的数据。例如,如果允许键或值为所有数字,或允许包含空格和标点符号,则需要修改正则表达式。但是对于你当前的例子,这将有效。

NSString *example = @"Key1-Value1,Key2-Value2,Key3-Value3,...";
NSString *result = [example stringByReplacingOccurrencesOfString:@"(\\w+)-(\\w+),?" 
                                                      withString:@"$1, " 
                                                         options:NSRegularExpressionSearch
                                                           range:NSMakeRange(0, [example length])];
result = [result stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
NSLog(@"%@", result);