匹配规则:pattern
NSRegularExpressionCaseInsensitive = 1 << 0,
匹配规则中的字符串忽略大小写
NSRegularExpressionAllowCommentsAndWhitespace = 1 << 1, 忽略空白和# 前缀在匹配规则
NSRegularExpressionIgnoreMetacharacters = 1 << 2, 把整个字符串作为 匹配规则
NSRegularExpressionDotMatchesLineSeparators = 1 << 3, 允许 . 来匹配任意字符 包括 换行符
NSRegularExpressionAnchorsMatchLines = 1 << 4, 允许^ $ 来匹配 开始和结束
NSRegularExpressionUseUnixLineSeparators = 1 << 5, 把/n作为分隔符
NSRegularExpressionUseUnicodeWordBoundaries = 1 << 6 Use Unicode TR#29 to specify word boundaries (otherwise, traditional regular expression word boundaries are used).
//查找目标字符串中所有符合规则的‘结果字符串‘
-(void)test2{
//1. 目标字符串
NSString *str = @"has92rjlsfu98wnerlkehjkmw30unsn0jkj2";
//2.查找规则
//2.1 两位 第一位字母 第二位数字
NSString *partern = @"[a-z][0-9]";
//3.创建正则表达式对象
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:partern options:NSRegularExpressionCaseInsensitive error:nil];
//4.开始匹配 返回数组
NSArray *results = [regular matchesInString:str options:NSMatchingReportCompletion range:NSMakeRange(0, str.length)];
//5.如果查找的数组不为空 遍历查找到的结果
if (results != nil) {
for (NSTextCheckingResult *result in results) {
NSString *resultStr = [str substringWithRange:result.range];
NSLog(@"%@",resultStr);
}
}
}
//查找目标字符串中的第一个符合规则的‘结果字符串‘
-(void)test{
//目标字符串
NSString *str = @"kjsjfjio2398jkn982j47sdj92hbkj";
//匹配规则
//查找两个字节 第一个为数字 第二位字母
NSString *pattern = @"[0-9][a-z]";
// 1.创建正则表达式对象
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
//2.开始匹配
//查找目标字符串中符合规则的第一个
NSTextCheckingResult *result = [regular firstMatchInString:str options:NSMatchingReportCompletion range:NSMakeRange(0, str.length)];
//查找结果中有Range属性 为找到的内容在目标字符串中的范围
//根据result.range拼接‘结果字符串‘
NSString *resultStr = [str substringWithRange:result.range];
NSLog(@"%@",resultStr);
}
正则表达式
原文:http://www.cnblogs.com/guozhenhu/p/4614735.html