1

我有一个这种格式的 NSString:

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

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

键 1、键 2、键 3 等

我想使用逗号作为分隔符从字符串中创建一个组件数组,然后,对于每个组件,提取自“-”以来的所有字符;然后我会序列化数组元素。但我担心这可能会对表演造成很大影响。

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

4

1 回答 1

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);
于 2011-09-12T15:47:04.133 回答