zoukankan      html  css  js  c++  java
  • iOS: 正则表达式

      OS中一共有3种方式进行正则表达式的匹配NSPredicate、NSRegularExpression、NSString

      一、使用NSPredicate

    void useNSPredicate()
    {
        NSString *phoneNO = @"13182428488";
        NSString *regex = @"^1[3|4|5|7|8]\d{9}$";
        
        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
        BOOL isValid = [predicate evaluateWithObject:phoneNO];
        NSLog(@"%s %d", __FUNCTION__ ,isValid);
    }

      二、使用原生NSRegularExpression

    void useNSRegularExpression()
    {
        NSString *phoneNO = @"13182428488";
        NSError *error = NULL;
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^1[3|4|5|7|8]\d{9}$" options:NSRegularExpressionCaseInsensitive error:&error];
        NSTextCheckingResult *result = [regex firstMatchInString:phoneNO options:0 range:NSMakeRange(0, [phoneNO length])];
        if (result) {
            NSRange resultRange = [result rangeAtIndex:0];
            //从urlString中截取数据
            NSString *stringResult = [phoneNO substringWithRange:resultRange];
            
            NSLog(@"%s %@
    ", __FUNCTION__, stringResult);
        }
    }

      三、使用NSString

    void useNSString()
    {
        NSString *phoneNO = @"13182428488";
        NSRange range = [phoneNO rangeOfString:@"^1[3|4|5|7|8]\d{9}$" options:NSRegularExpressionSearch];
        if (range.location != NSNotFound) {
            NSLog(@"%s %@
    ", __FUNCTION__, [phoneNO substringWithRange:range]);
        }
    }
  • 相关阅读:
    Linux中的bin文件夹
    ubuntu安装deb包(dpkg)
    vim显示行号
    vim搜索结果高亮
    less和vim中使用正则表达式搜索
    正则表达式中的Quantifiers
    正则表达式解英语单词字谜
    [HDOJ4911]Inversion
    [LightOJ1282]Leading and Trailing
    [HDOJ1568]Fibonacci
  • 原文地址:https://www.cnblogs.com/pretty-guy/p/4259382.html
Copyright © 2011-2022 走看看