iOS开发正则表达式

释放双眼,带上耳机,听听看~!

OC中利用正则表达式对字符串的判断代码

- (BOOL)validatePassword:(NSString *)pass {
BOOL result = false;
NSString * regex = @"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[0-9A-Za-z]{8,16}$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
result = [pred evaluateWithObject:pass];
NSLog(@"只有字母和数字:%d",result);
return result;
}

这段代码是对密码字符串“pass”做的一个判断,要求密码
1.长度为8到16位。
2.只能是数字和密码。
3.至少包含一个数字、一个大写字母、一个小写字母。

正则表达式:”^(?=.[a-z])(?=.[A-Z])(?=.*[0-9])[0-9A-Za-z]{8,16}$”

^:表示匹配字符串的开头。
$:表示匹配字符串的结尾。
[0-9A-Za-z]:代表字符串只能是数字和字符。
[a-z]:代表所有小写字母。
[A-Z]:代表所有大写字母。
[0-9]:代表数字。
?=.:代表任意字符后连着什么(如:?=.[a-z]代表任意字符后连着一个小写字母)。
.:表示任意字符(除了换行符)。
\d:表示任意的单个数字。
*:表示前一个值重复0或多次。

正则表达式:^(?![0-9]+)[0-9A-Za-z]{8,16}$

含义:判断的字符串中只能是数字和字母的组合。
?!:不全是(如:?![0-9]+$ 代表不全是数字)

一些例子:

“ab*”:表示一个字符串有一个a后面跟着零个或若干个b(”a”, “ab”, “abbb”,……);
“ab+”:表示一个字符串有一个a后面跟着至少一个b或者更多( “ab”, “abbb”,……);
“ab?”:表示一个字符串有一个a后面跟着零个或者一个b( “a”, “ab”);
“a?b+$”:表示字符串以零个或一个a跟着一个或几个b结尾( “b”, “ab”,”bb”,”abb”,……)

可以用大括号括起来({}),表示一个重复的具体范围。例如

“ab{4}”:表示一个字符串有一个a跟着4个b(”abbbb”);
“ab{1,}”:表示一个字符串有一个a跟着至少1个b(”ab”,”abb”,”abbb”,……);
“ab{3,4}”:表示一个字符串有一个a跟着3到4个b(”abbb”,”abbbb”)。

那么,“*”可以用{0,}表示,“+”可以用{1,}表示,“?”可以用{0,1}表示

使用NSRegularExpression

NSString *searchText = @"you want to match"; 
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]+$"   options:NSRegularExpressionCaseInsensitive error:&error];
NSTextCheckingResult *result = [regex firstMatchInString:searchText options:0 range:NSMakeRange(0, [searchText length])];
if (result) {
 NSLog(@"%@", [searchText substringWithRange:result.range]);
}

 

人已赞赏
iOS文章

解决AFNetworking3.0网络请求问题

2019-10-26 14:44:40

iOS文章

Instruments使用技巧

2019-10-26 16:30:19

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索