
正文
iOS 正则表达式(一)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在iOS开发中,正则一直是最常用的,但也是一直记不住的,现在做一些简单的总结
我们在网上找的正则,要有'\',这个在iOS是转义符,需要'\\'这样
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
// 1.创建正则表达式
// []:找到内部的某一个字符串
// "[a-z]" :小写
// "[a-zA-Z]" :大小写
// "[a-zA-Z0-9]" :大小写及数字
// "\\d" 相当于 "[0-9]"
// "\\d{3}" 相当于“\\d\\d\\d”,表示找到连续3个一起的数字
// "\\d{2,4}" 表示2数字或者4个数字 符合的。如"342455" ,得到两个结果“3424“和”55” // . 匹配除换行符以外的任意字符
// \w 匹配字母或数字或下划线或汉字
// \s 匹配任意的空白符
// \d 匹配数字
// \b 匹配单词的开始或结束
// ^ 匹配字符串的开始。如 @"^\\d{2}" : 表示以2数字开头,“345dd”匹配1个,“1d2e33”没有匹配
// $ 匹配字符串的结束。如 @"\\d{2}$" :表示以2数字结尾,“ddd22”匹配1个,"dd3s3s"没有匹配
// 例如手机:@"^1[3578]\\d{9}$" ,表示以1开头,中间匹配任意3,5,7,8 ,最后以9个数字结尾
// 当然,正确的手机"1[3578]\\d{9}$"和"1[3578]\\d{9}" 写都是可以匹配的。 // * 重复零次或更多次
// + 重复一次或更多次
// ? 重复零次或一次 NSString *userName = @""; NSString *pattern = @"^1[3578]\\d{9}$";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options: error:nil]; // 测试字符串
NSArray *resultArray = [regex matchesInString:userName options: range:NSMakeRange(, userName.length)]; NSLog(@"%zd",resultArray.count);
}
return ;
}
打印出匹配的字符
NSString *userName = @"ddd333jda892dd34dsss"; NSString *pattern = @"[a-zA-Z]+"; // 匹配一次或更多次,会打印出连续的英文
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options: error:nil]; NSArray *resultArray = [regex matchesInString:userName options: range:NSMakeRange(, userName.length)]; for (NSTextCheckingResult *result in resultArray) {
NSLog(@"%@ %@",NSStringFromRange(result.range),[userName substringWithRange:result.range]);
}
结果(会打印出连续的结果):








