正则表达式又称正规表示法、常规表示法(英语: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