A.正则表达式-正则表达式使⽤用单个字符串来描述、匹配⼀一系列符合某个句法规则的字符串。在很多⽂文本编辑器⾥里,正则表达式通常被⽤用来检索、替换那些
符合某个模式的⽂文本。
B.原义⽂文本字符-正常的⽂文本字符。
C.元字符-具有特殊意义的专⽤用字符,是代替正常⽂文本字符的字符。
D.限定符-限定匹配的数量或特殊条件。
常⽤用元字符
元字符 |
含义 |
. |
匹配除换⾏行符以外的任意字符
|
\w |
匹配字⺟母或数字或下划线或汉字
|
\s |
匹配任意的空⽩白符 |
\d |
匹配数字 |
\b |
匹配单词的开始或结束 |
^ |
匹配字符串的开始 |
$ |
匹配字符串的结束 |
常⽤用限定符
元字符 |
含义 |
{n} |
重复n次 |
{n,} |
重复⼤大于等于n次 |
{n,m} |
重复n次到m次 |
* |
重复⼤大于等于0次 |
+ |
重复⼤大于等于1次 |
? |
重复0次或1次 |
举例:
匹配全数字:^[0-9]*$
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}匹配腾讯QQ号:[1-9][0-9]{4,}
匹配⾝身份证:\d{15}|\d{18}匹配帐号是否合法(字⺟母开头,允许5-16字节,允许字⺟母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
代码示例:
//⽤用户名
+ (BOOL) validateUserName:(NSString *)name{
NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$";
NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",userNameRegex];
BOOL B = [userNamePredicate evaluateWithObject:name];
return B;}
//密码
+ (BOOL) validatePassword:(NSString *)passWord{
NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",passWordRegex];
return [passWordPredicate evaluateWithObject:passWord];}