正则运算--NSRegularExpression封装

// 文本中是否与正则匹配
+ (BOOL) isMatchRule:(NSString *)rule Text:(NSString *)text
{
    NSError *error = NULL;
    NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:rule options:0 error:&error];
    
    NSUInteger *numCover = [regular numberOfMatchesInString:text options:0 range:NSMakeRange(0, text.length)];
    regular = nil;
    
    if (numCover)
    {
        return YES;
    }else
    {
        return NO;
    }
}
// 返回匹配的字符串形成的数组
+ (NSMutableArray *) getMatchRule:(NSString *)rule Text:(NSString *)text
{
    NSMutableArray *matchStr = [[NSMutableArray alloc] init];
    NSError *error = NULL;
    NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:rule options:0 error:&error];
    
    NSArray *match = [regular matchesInString:text options:0 range:NSMakeRange(0, text.length)];
    regular = nil;
    
    for (NSTextCheckingResult *ma in match)
    {
        NSRange range = [ma range];
        [matchStr addObject:[text substringWithRange:range]];
        
    }
    
    return matchStr;
}
// 将oldtext筛选出来的用newtext代替
+ (NSString *) replaceRule:(NSString *)rule OldText:(NSString *)oldtext NewText:(NSString *)newtext
{
    NSError *error = NULL;
    NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:rule options:0 error:&error];
    
    NSString *replacedStr = [regular stringByReplacingMatchesInString:oldtext options:0 range:NSMakeRange(0, oldtext.length) withTemplate:newtext];
    regular = nil;
    
    return replacedStr;
}
  • option 为block相应的选项,这里暂且不做描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容