iOS开发 正则运算详细介绍
iOS开发正则运算
1.正则运算意义
regularexpression描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等,而在iOS中我们多数用于检查字符串是否符合规则
2.常用正则表达式(如果想自己动手写出符合需求的正则表达式,只需了解4中的符号意义)
(1).用户名
"^[a-zA-Z][a-zA-Z0-9_]{5,15}$"(由6-16位字母数字下划线组成,第一位不能为数字或下划线)
[a-zA-Z]表示第一位为字母;
[a-zA-Z0-9]表示字符为字母数字或者下滑线;
{5,15}表示有5到15个符合[a-zA-Z0-9]的字符
(2).密码
"^(?![0-9]{0,24})[\\S]{6,24}$" (6-24位,不能为纯数字,不能包含空格)
(?![0-9]{0,24}$) 表示前24位不能全为数字
\S 表示任何非空白字符(不为空格,回车,tab等输入的空白符)
[\\S]{6,24}表示6到24位不为空格的字符
(3).手机号
"^1[3|4|5|7|8][0-9]{9}$"(只是一个大概,不能完全精确筛选)
1表示第一位为1
[3|4|5|7|8]表示第二位为3,4,5,6,7,或者8
[0-9]{9}表示9位任意数字
(4).email
"^[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+.com(.cn)?$" (格式用户名@邮箱网站.com 或 用户.名@邮箱网站.com.cn)
[a-zA-Z0-9_-]+表示1位或多位字母数字下划线和连接符
(.[a-zA-Z0-9_-]+)*表示0个或多个 由一个点.和一个或多个字母数字下划线连接符组成的字符串
3.正则在iOS中的应用
检查字符串是否符合要求
/** *检查字符串是否符合正则表达是 * *@paramstring需要检查的字符串 *@paramregex正则表达是 * *@return符合返回YES不符返回NO */ -(BOOL)predicateString:(NSString*)stringWithRegularExpreess:(NSString*)regex{ //1、拼接谓词 NSPredicate*predicateRe=[NSPredicatepredicateWithFormat:@"selfmatches%@",regex]; //2、匹配字符串 BOOLresult=[predicateReevaluateWithObject:string]; returnresult; } 如:检查是字符串否符合(6-24位,不能为纯数字,不能包含空格)的规则 NSString*regulerExp=@"^(?![0-9]{0,24}$)[\\S]{6,24}$"; BOOLresult=[selfpredicateString:_textField.textWithRegularExpreess:regulerExp];
4.常用符号即意义(了解了以下几个符号的意义,一般的正则运算都可以写出了)
^ 用在表达式的开头表示一个正则表达是的开始
$ 表示字符串的结尾
[] 中的表达式限定一个字符
如:^[a-z]:限定为小写字母 [A-Z]:限定为大写字母 [0-9]:限定为数字
() 限定一个子串
如: ^([a-z]{4})([0-9]{3})表示由4个小写字母后边接三个数字构成的字符串即,abcd332adfd453等
{m} m个符合限定的字符
如:^[a-z]{3} 表示由三个小写字母构成的字符串即addbcdade等
{m,} 大于或等于m个符合限定的字符
如:^[a-z]{3,} 表示由三个以上小写字母构成的字符串即,acd,bcd ,adsf,sadfasdfasdf,等
{m,n}m到n个符合限定的字符
如:^[a-z]{3,5} 表示3到5个小写字母构成的字符串即,adbadsbasdfd等
* 表示0个或多个符合限定的字符
如:^[a-z]*表示有0个或多个小写字母构成的字符串
? 表示0个或一个符合限定的字符
+ 表示一个或多个符合限定的字符
注意:没有限定符标记的即为单字符,其中m,n为非负整数,n>m
[^] ^在[]里边代表非得意思
如:^[^a-z] 表示除了一个小写字母外的字符
| 或
如:^[a-z]|[0-9] 表示一个小写字母或者数字
?= 用圆括号包括,表示检查符合括号内规则的字符如:(?=[0-9]{0-7})表示前7位全为数字
?! 用圆括号包括,表示检查不符合括号内规则的字符如:(?![0-9]{0-7})表示前7位不全为数字
通过此文,希望大家对 IOS正则运算学习掌握,谢谢大家对本站的支持!