IOS正则表达式应用

正则表达式又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本;

作者:船长_
链接:https://www.jianshu.com/p/ea10003d224a
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

NSString *str = @"jsdnfoegweeo2325))(&……_";

网址示例:NSString pattern = @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=])?";

匹配话题 示例:NSString pattern = @"#.?#";

手机号码匹配 示例:NSString *pattern = @"1[3578]\d{9}$";

    NSError *error = nil;
 /*
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标准作为词的边界,否则所有传统正则表达式的词边界都有效
};
*/
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];

    NSArray<NSTextCheckingResult *> *result = [regex matchesInString:str options:0 range:NSMakeRange(0, str.length)];
    if (result) {
        for (int i = 0; i<result.count; i++) {
            NSTextCheckingResult *res = result[i];
            NSLog(@"str == %@", [str substringWithRange:res.range]);
        }
    }else{
        NSLog(@"error == %@",error.description);
    }

转载于:https://www.jianshu.com/p/245820b8f883

猜你喜欢

转载自blog.csdn.net/weixin_33725272/article/details/91052264