iOS系统自带正则表达式简单运用

本文介绍如何使用Objective-C中的正则表达式来解析字符串内的网址,并验证字符串是否为QQ号码或电子邮件地址。

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

    NSString *urlString = @"sfdshttp://www.baidu.com";

    NSError *error;

    //http+:[^\\s]* 这是检测网址的正则表达式

    NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:@"http+:[^\\s]*"options:0error:&error];

    

    if (regex != nil) {

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

        

        if (firstMatch) {

            NSRange resultRange = [firstMatch rangeAtIndex:0];

            //urlString中截取数据

            NSString *result = [urlString substringWithRange:resultRange];

            NSLog(@"%@",result);

        }

    }

 

 

    NSString *stringC = @"weiboyuan@163.com";

    //匹配输入的联系方式是否为QQ号码或者电子邮箱

    NSString *patternQQ = @"^[1-9](\\d){4,9}$";

    NSString *patternEmail = @"\\b([a-zA-Z0-9%_.+\\-]+)@([a-zA-Z0-9.\\-]+?\\.[a-zA-Z]{2,6})\\b";

//    NSError *error = NULL;

    //定义正则表达式

    NSRegularExpression *regexQQ = [NSRegularExpressionregularExpressionWithPattern:patternQQ options:0error:&error];

    NSRegularExpression *regexEmail = [NSRegularExpressionregularExpressionWithPattern:patternEmail options:0error:&error];

    //使用正则表达式匹配字符

    NSTextCheckingResult *isMatchQQ = [regexQQ firstMatchInString:stringC

                                                          options:0

                                                            range:NSMakeRange(0, [stringC length])];

    NSTextCheckingResult *isMatchEmail = [regexEmail firstMatchInString:stringC

                                                                options:0

                                                                  range:NSMakeRange(0, [stringC length])];

    

    if (isMatchQQ || isMatchEmail)

    {

        NSLog(@" QQ或者邮箱");

    }

    else

    {

        NSLog(@"不是 QQ或者邮箱");

    }

转载于:https://www.cnblogs.com/weiboyuan/p/3440999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值