iOS 订单 物流接口数据的处理

后台返回这样的字段

    {
      "time": "2016-05-29 15:45:42",
      "context": "快件到达【嘉兴南湖集散中心】",
      "ftime": "2016-05-29 15:45:42"
    },
    {
      "time": "2016-05-29 11:01:14",
      "context": "快件在【杭州中转站】,正转运至下一站",
      "ftime": "2016-05-29 11:01:14"
    },
    {
      "time": "2016-05-30 08:04:15",
      "context": "正在派送途中,请您准备签收 (派件人:吴进明,电话:18069826220)",
      "ftime": "2016-05-30 08:04:15"
    }


1>这样的数据我们要知道是可以筛选出电话号码和诸如"杭州中转站"的地点 ;

2>对于电话号码,比较简单的做法就是用TTTLabel来实现.如果用xib关联TTTlabel的话一定要注意给label赋值的顺序;

3>对于杭州中转站 这类的字眼 ,我们要想到正则表达式来取出括号内的地点.

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    NSString *str = @"@huohuo12:【动物尖叫合辑】#肥猪流#猫头鹰这么尖叫[偷笑]、@船长: 老鼠这么尖叫、兔子这么尖叫[吃惊]、@花满楼: 莫名奇#小笼包#妙的笑到最后[好爱哦]!~ http://www.jianshu.com 电话: 17334332342。【动辑】";
    
    // 1.匹配@名字:
//     NSString *pattern = @"@.*?:";
    
    // 2.匹配URL
//     NSString *pattern = @"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
    
    // 3.匹配话题 #....#
     NSString *pattern = @"#.*?#";
    
    // 4. 【】
//         NSString *pattern = @"【.*?】";
    
    // 5.手机号码匹配
//    NSString *pattern = @"1[3578]\\d{9}$";
    
    NSError *error = nil;
    /*
     typedef NS_OPTIONS(NSUInteger, NSRegularExpressionOptions) {
     NSRegularExpressionCaseInsensitive             = 1 << 0, //不区分字母大小写的模式
     NSRegularExpressionAllowCommentsAndWhitespace  = 1 << 1, //忽略掉正则表达式中的空格和#号之后的字符
     NSRegularExpressionIgnoreMetacharacters        = 1 << 2, //将正则表达式整体作为字符串处理
     NSRegularExpressionDotMatchesLineSeparators    = 1 << 3, //允许.匹配任何字符,包括换行符
     NSRegularExpressionAnchorsMatchLines           = 1 << 4, //允许^和$符号匹配行的开头和结尾
     NSRegularExpressionUseUnixLineSeparators       = 1 << 5, //设置\n为唯一的行分隔符,否则所有的都有效。
     NSRegularExpressionUseUnicodeWordBoundaries    = 1 << 6 //使用Unicode TR#29标准作为词的边界,否则所有传统正则表达式的词边界都有效
     };
     */
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
    
    NSArray<NSTextCheckingResult *> *result = [regex matchesInString:str options:0 range:NSMakeRange(0, str.length)];
    if (result) {
        for (int i = 0; i<result.count; i++) {
            NSTextCheckingResult *res = result[i];
            NSLog(@"str == %@", [str substringWithRange:res.range]);
        }
    }else{
        NSLog(@"error == %@",error.description);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值