正则表达式的基本使用


基本规则:

  1. [ ] 里面放的是匹配的条件
  2. ^ 代表强制开头
  3. $ 代表强制结尾
  4. { }表示位数 —> {n,m}大于等于n小于m;{,m}从0到m;{n,}最小必须是n;{n}必须是n位;

具体使用步骤

  1. 设置匹配内容:NSString *urlStr = @”2acba123kabc”;
  2. 正则表达式:NSString *pattern = @”y”;
  3. 创建正则匹配的对象NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
  4. 匹配的结果 NSArray *results = [regularExpression matchesInString :urlStr options:0 range:NSMakeRange(0 ,urlStr.length)];

示例题

  1. 匹配abc y = abc
  2. 包含一个小写a~z,后面跟数字0-9 y = [a-z][0-9]
  3. 只有俩个,第一个是字母,第二个是数字 y = ^[a-z][0-9]$
  4. 第一个是字母,字母后面是4-9个数字 y = ^[a-z][0-9]{4-9}$
  5. 不能是数字开头 ^[^0-9]
  6. qq5-12,不能0开头^[1-9][0-9]{4-11}$

常用的

  • 检验密码的强度

密码必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间

1
^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8-10}$
  • 检验中文

字符串只能是中文

1
^[\\u4e00-\\u9fa5]{0,}$
  • 数字 26个英文字母或下划线组成的字符串
1
^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8-10}$
  • 检验密码的强度

密码必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间

1
^\\w+$
  • 检验E-Mail的地址
1
[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?
  • 检验身份证号码

18位

1
^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$
  • 检验日期

yyyy-mm-dd格式,平闰年

1
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
  • 检验手机号

13 15 18开头

1
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$
这个人很帅<br>他什么都不想说<br>