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

2018-03-01  本文已影响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;
}
上一篇 下一篇

猜你喜欢

热点阅读