正则表达式语法

下面先来介绍一下正则表达式的基本语法。

正则表达式基本语法

正则表达式常见字符

    test            # 匹配包含test的字符串
    .               # 匹配除换行符外任意字符
    \               # 转义字符
    [abc]或[a-c]    # 匹配字符类,如例子匹配a,b,c中的任何一个
    [^abc]          # 匹配除了a,b,c以外的所有字符

正则表达式特殊字符

\d                  # 数字,等同于[0-9]
\D                  # 非数字
\s                  # 空白字符(包括换行、Tab等)
\S                  # 非空白字符
\w                  # 单词,等用于[a-zA-Z0-9_]
\W                  # 非单词

正则表达式数量词
c*                  # 匹配字符"c" 0或无限次
c+                  # 匹配字符"c" 1次以上
c?                  # 匹配字符"c" 0或1次
c{3}                # 匹配字符"c" 3次
c{3,5}              # 匹配字符"c" 3到5次

正则表达式边界匹配
^abc                # 匹配"abc"开头的字符串
abc$                # 匹配"abc"结尾的字符串

正则表达式逻辑或分组
c|b                 # 匹配"c"或"b"
(ab|cd)             # 匹配"ab"或"cd"
(?P<name>abc)       # 匹配"abc"并命名为name
(?P=name)           # 前文中的name组

实例分析 匹配用户手机号
根据上面的语法,我用OC语言写出来的正则表达式匹配手机号的代码如下:

NSString *pattern = @"^1+[34578]+\\d{9}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:telNumber];
return isMatch; 

我们来分析我写的这段正则表达式,首先是边界匹配^1手机号一定是1开头,所以我们的开头用边界匹配1。

[3578] 我们用中括号[]来匹配字符类,说明第二位数字是3、5、7、8中任意一个就可以,目前17也是新开号段,所以得考虑进去匹配上。

最后\d{9}这里要拆分开看,首先\d表示数字,等同于[0-9],而{9}表示匹配数字\d 9次。这样,就完成了一个11位手机号码的校验。

+ : 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。

重复
表2.常用的限定符

代码/语法 说明

  • 重复零次或更多次
  • 重复一次或更多次
    ? 重复零次或一次
    {n} 重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次

参考链接:https://www.jianshu.com/p/a3dd72eadfa3

进阶:https://juejin.im/post/5965943ff265da6c30653879

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...
    木马不在转阅读 6,343评论 8 21
  • 因为最近公司最近做项目一些手机格式,邮箱等等需要用到正则表达式验证,因此记录下来,方便以后查找. 正则表达式又称正...
    小强七号阅读 4,314评论 0 1
  • 正则表达式是由元字符和普通字符组成。所谓元字符就是类似于“*”、“?”之类的有意义的字符,所谓的普通字符就是字符串...
    吃饭饭还有睡觉觉阅读 4,086评论 0 0
  • 正则表达式简单语法总结 一、什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索...
    郭大侠smile阅读 5,658评论 0 0
  • 玉新桥,炊烟里人马来往。 不时见一顶新轿烛下缎儿般滑过柳条,余香散上柳叶,叶上夕影浅粉。 忽有木车吱呀碾尘摇过,覆...
    古池笑月阅读 3,265评论 0 6