美文网首页
iOS 截取字符串中符合指定正则的内容

iOS 截取字符串中符合指定正则的内容

作者: 水煮杰尼龟 | 来源:发表于2018-03-01 11:20 被阅读11次

    有时候需要从字符串中拿到符合自己需要的正则的内容,可以用到下面的方法。

    /*
    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标准作为词的边界,否则所有传统正则表达式的词边界都有效
    };
    */
    -(NSMutableArray *)arrayForRegex:(NSString *)regexString string:(NSString *)str
    {
         //https://app.tianlalu.io/download/?model=A01
        //NSString *regexStr=@"model\\=\\w+";
        
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString options:NSRegularExpressionCaseInsensitive error:nil];
        
        NSArray * matches = [regex matchesInString:str options:0 range:NSMakeRange(0, [str length])];
        
      
        NSMutableArray *array = [NSMutableArray array];
        
        for (NSTextCheckingResult *match in matches) {
            
            for (int i = 0; i < [match numberOfRanges]; i++) {
               
                NSString *component = [str substringWithRange:[match rangeAtIndex:i]];
                
                [array addObject:component];
                
            }
        }
        return array;
    }
    

    相关文章

      网友评论

          本文标题:iOS 截取字符串中符合指定正则的内容

          本文链接:https://www.haomeiwen.com/subject/zehgxftx.html