正则表达式 - 正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
原义文本字符 - 正常的文本字符。
元字符 - 具有特殊意义的专用字符,是代替正常文本字符的字符。
限定符 - 限定匹配的数量或特殊条件。
元字符 含义
. 匹配除换行符以外的任意字符
\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;
}