程序员

正则表达式

2018-11-20  本文已影响4人  iamgaoshuai

正则表达式语法

^ 以....开头 ^[0-9]{2}    以两个数字开头

$ 以....结尾     .{2} 以任意的两个字符结尾

. 任意字符

\w 用来匹配字母 数字 或 下划线

\d 0 - 9 的数字

\s 匹配空白字符  空格 回车 制表符

\b 匹配单词的开始和结尾     \bcom\b.  获取到的就是com

ab+ a后面跟着一个或若干个b

ab* a后面跟着零个或者若干个b

ab? a后面跟着零个或一个b

a?b+$ 结尾有零个或一个a后面跟着一个或多个b

{}重复次数

[0-9]{3} 有三个数字

[0-9]{3,5}有三到五个数字

| 或    [a|b]cd.  acd.  bcd         [ab] 相当于[a|b]

a.[0-9] 表示a后面跟着任意字符和一个数字

[^a-z]表示不希望出现 a-z

+?表示尽可能少的匹配字符

实例

 验证身份证

- (BOOL)verifyIDCard : (NSString *)IDCard{

              if (IDCard.length <= 0) {

                  return NO;

             }

        NSString *identityRegex = @"^(\\d{14}|\\d{17})(\\d|[X])$";

         NSPredicate *predicata = [NSPredicate predicateWithFormat:@"SELF MATCHES            %@",identityRegex];

        return  [predicata evaluateWithObject:IDCard];

}

尽可能少的匹配字符

NSString *string = @"this is a demo text,too!";

NSRange range = [string rangeOfString:@"t.*?t" options:NSRegularExpressionSearch];

NSLog(@"%@",[string substringWithRange:range]);  // this is a demo t

NSRange range2 = [string rangeOfString:@"t.*t" options:NSRegularExpressionSearch];

NSLog(@"%@",[string substringWithRange:range2]);  // this is a demo text,t

上一篇 下一篇

猜你喜欢

热点阅读