从 NSString 中获取值

约翰蒂

从服务器获取复杂字符串

@"a:3:{i:0;s:4:\"3530\";i:1;s:4:\"3532\";i:2;s:4:\"4503\";}"

我需要上面字符串中的所有 ID,例如

["3530", "3532", "4503"]

我怎样才能得到上面的输出?我知道一种componentsSeparatedByString将字符串拆分为数组并得到我的结果的方法。

但我认为这不是一个好方法。所以你能建议我正确的方向RGEX或等。?

注意:它不是JSONString 所以我们不能将它转换为ArrayOr Dictionary


我的逻辑得到了预期的结果。但我不喜欢像下面那样做。

更新:

 NSString *temStringValue = @"a:3:{i:0;s:4:\"3530\";i:1;s:4:\"3532\";i:2;s:4:\"4503\";}";
    NSArray * arrSplit = [temStringValue componentsSeparatedByString:@"4:\""];
    NSMutableArray *finalArray = [[NSMutableArray alloc] init];
    if(arrSplit.count > 0 ){
        for (NSString *strInner in arrSplit) {
            NSArray * arrSplit2 = [strInner componentsSeparatedByString:@"\""];
            NSLog(@"%@", arrSplit2);
            [finalArray addObject:[arrSplit2 objectAtIndex:0]];
        }
    }

    [finalArray removeObjectAtIndex:0];
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:finalArray options:NSJSONWritingPrettyPrinted error:nil];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    NSLog(@"%@", jsonString

输出

[
  "3530",
  "3532",
  "4503"
]

所以有人有好主意吗?

瓦迪安

这是使用正则表达式的解决方案

该模式搜索后跟一个或多个非双引号字符和第二个双引号的双引号。双引号之间的字符被捕获在一个组中。

NSString* input = @"a:3:{i:0;s:4:\"3530\";i:1;s:4:\"3532\";i:2;s:4:\"4503\";}";
NSString *pattern = @"\"([^\"]+)\"";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSArray *matches = [regex matchesInString:input options:0 range:NSMakeRange(0, input.length)];
NSMutableArray *result = [[NSMutableArray alloc] init];
for (NSTextCheckingResult *match in matches) {
    [result addObject: [input substringWithRange:[match rangeAtIndex:1]]];
}
NSLog(@"%@", result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:如何从NSScanner的AutoreleasingUnsafePointer <NSString?>中获取值?

来自分类Dev

检查NSString中是否包含NSString hasPrefix

来自分类Dev

在NSString中写入%

来自分类Dev

IF Else方法,在NSString中

来自分类Dev

在iOS 7中获取NSString的高度

来自分类Dev

从NSString获取干净的Youtube链接

来自分类Dev

从NSDictionary获取NSString作为NSArray

来自分类Dev

在iPhone中拆分URL nsstring

来自分类Dev

NSString + URLEncoding中的内存泄漏

来自分类Dev

类中的extern NSString * const。

来自分类Dev

在类别中递归反向NSString

来自分类Dev

替换NSString中的字符数组

来自分类Dev

标签中显示的NSString值

来自分类Dev

替换NSString中的某些字符

来自分类Dev

如何在NSString中换行?

来自分类Dev

NSString中的大写随机字符

来自分类Dev

从NSString中删除重复的单词并另存为新的NSString

来自分类常见问题

NSString到CFStringRef和CFStringRef到ARC中的NSString吗?

来自分类Dev

将NSDictionary转换为NSString后替换NSString中的字符

来自分类Dev

获取NSString在字符串中的位置-iOS

来自分类Dev

如何从NSString中的不同位置获取位置?

来自分类Dev

如何从NSString中的不同位置获取位置?

来自分类Dev

如何从NSString中获取百分比-目标C

来自分类Dev

RNCryptor:将公共密钥作为NSString获取

来自分类Dev

将实例名称获取为NSString

来自分类Dev

从NSString获取类型为UIColor的#define

来自分类Dev

从NSString获取月,日,年,星期几

来自分类Dev

从NSString获取月份,返回空值

来自分类Dev

从NSString获取UILabel所需的行数吗?