关于用NSRegularExpression来找出表情和网址

在开发中遇到表情问题的时候,比如[惊恐]、[吓]、[疑问]。想要在一句话中找到对应的表情,比如“我很喜欢你啊[亲亲]给我一次机会吧[可怜][哈哈]”。我们可以用谓词(NSPredicatel类)来查找,也可以用NSRegularExpression来解决这类问题。

下面直接上代码


-(void)parseString{

    

    //组装一个字符串,需要把里面的网址解析出来

    

    NSString *urlString=@"sfdsf[惊恐][][哈哈]";

    

    //NSRegularExpression类里面调用表达的方法需要传递一个NSError的参数。下面定义一个

    

   NSError *error;

    

    //http+:[^\\s]* 这个表达式是检测一个网址的。 例如:sfdsfhttp:www.baidu.com

   //\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\] 这个表达式是检测类似[惊恐]、[吓]这种表情的


    NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]"options:0error:&error];

    

   if (regex != nil) {

        

       NSTextCheckingResult *firstMatch=[regex firstMatchInString:urlString options:0range:NSMakeRange(0, [urlStringlength])];

        

       if (firstMatch) {

            

           NSRange resultRange = [firstMatch rangeAtIndex:0]; //等同于 firstMatch.range ---相匹配的范围

            

            //urlString当中截取数据

            

           NSString *result=[urlString substringWithRange:resultRange];

            

           //输出结果

            

           NSLog(@"%@",result);

            

        }

    }

    

}



2.使用正则表达式来判断

//初始化一个NSRegularExpression 对象,并设置检测对象范围为:0-9 

NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]*$" options:0 error:nil];

        if (regex2)

        {//对象进行匹配

             NSTextCheckingResult *result2 = [regex2 firstMatchInString:textField.text options:0 range:NSMakeRange(0, [textField.text length])];

            if (result2)  { 

            }

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值