一张精彩的导图

导图内容解析

  • 语法结构
  • 字符
    • 普通字符:字母、数字、汉字、下划线,匹配与之相同的一个字符
    • 简单转义字符:\n(换行),\t(制表),\\(\本身)和 \^...(\^等有特殊作用的符号如要匹配自己的话要用转义)
    • 标准字符集合
      注意区分大小写,大写是相反的意思,匹配相反是不匹配

      • \d
        任意一个数字,0~9
      • \w
        任意一个字母、数字、汉字或下划线,A~Z、a~z、0~9、_和任意一个汉字
      • \s
        任意空白符,包括空格、制表符、换行符
      • .
        小数点可以匹配任意一个字符,换行除外(如果要匹配包括"\n"在内的所有字符,一般用[\s\S])
    • 自定义字符集合
      [ ]方括号匹配方式,能够匹配方括号中的任意一个字符,^表示取反

      • [ab5@]
        匹配"a"或"b"或"5"或"@"
      • [^abc]
        匹配a、b、c之外的任意字符
      • [f-k]
        匹配“f"到"k"之间的字符
      • [^A-F0-3]
        匹配“A"-"F","0"-"3"之外的任意一个字符
  • 量词(Quantifier) 
    修饰前面的一个表达式,如果要修饰多个表达式,就用( )把表达式包起来

    • {n}
      表达式重复n次
    • {m,n}
      表达式至少重复m次,最多重复n次

      • 贪婪模式 (默认)
        匹配符合的最长的字符串
      • 非贪婪模式 (在量词后面加 ? 例:{m,n}? )
        匹配符合的最短的字符串
    • {m,}
      表达式至少重复m次

    • 匹配表达式0或1次,相当于{0,1}
    • +
      表达式至少出现一次,相当于{1,}
    • *
      表达式不出现或出现任意次,相当于{0,}
  • 字符边界 
    零宽:匹配的不是字符而是位置,符合某种条件的位置

    • ^
      与字符串开始的地方匹配
    • $
      与字符串结束的地方匹配
    • \b
      匹配一个单词的边界,当前位置前面的字符和后面的字符不全是\w
  • 预搜索(零宽断言、环视)
    零宽:匹配的不是字符而是位置,符合某种条件的位置

    • (?=exp)
      断言自身出现的位置的后面能匹配表达式exp
    • (?!exp)
      断言自身出现的位置的后面不能匹配表达式exp
    • (?<=exp)
      断言自身出现的位置的前面能匹配表达式exp
    • (?<!exp)
      断言自身出现的位置的前面不能匹配表达式exp
  • 匹配模式
    对文本的处理方式

    • IGNORECASE 忽略大小写模式

      • 匹配时忽略大小写
      • 默认是区分大小写的
    • SINGLELINE 单行模式
      • 整个文本看作一个字符串,只有一个开头一个结尾
      • 使小数点"."可以匹配包含换行符(\n)在内的任意字符
    • MULTILINE 多行模式
      • 每行都是一个字符串
      • 在多行模式下,如果需要仅匹配字符串开始和结束位置,可以使用\A和\Z
  • 选择符和分组
    分支结构、捕获组合非捕获组

    • | 分支结构
      左右表达式之间“或”关系,匹配左边或右边
    • ( ) 捕获组
      • (1)、在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
      • (2)、取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
      • (3)、每一对括号会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。捕获编号为零的第一个捕获是整个正则表达式模式匹配的文本
      • 反向引用:通过反向引用,可以对分组已捕获的字符串进行引用。
    • (?:Expression) 非捕获组
      一些表达式中,不得不使用(),但又不需要保存()中子表达式匹配的内容,这时可以用非捕获组来抵消()带来的副作用。
    • 原文发布时间为:2017-10-16
    • 本文作者:java思维导图
    • 本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。

一张思维导图,让正则表达式不再难懂相关推荐

  1. 用一张思维导图去全面学习通信网里的各种技术

    相信大家在刚开始接触通信网络的时候,会碰到各种的技术名词.我画了一张思维导图来给大家捋一捋这些技术之间的关系,对学习和记忆十分有用.废话不说,上图.全文涉及的内容较多,请耐心食用. 1.通信网的组成 ...

  2. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  3. 16张思维导图+学习路线图,囊括所有Python基础,可打印

    今天给大家分享的是关于Python基础的14张思维导图,对于大家知识的梳理会有很大的帮助,另外还有两张Python学习路线图,全面系统,让初学者不走弯路.一起来看一看吧! 前面知识回顾!!!!! 程序 ...

  4. GitHub 13.1k | 所有的编程知识,都在这100 张思维导图里了

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 转自:量子位 编程里能用到的所有知识,都在这里了. 这个号称东半球最全最酷的编程学习项目,不仅 ...

  5. 所有的编程语言知识,都包含在这100张思维导图里了丨GitHub 13.1k星

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 编程里能用到的所有知识,都在这里了. 这个号称东半球最全最酷的编程学习项目,不仅容纳了30万字的算法图解题典.100张各种编程语言的思维导图 ...

  6. python思维导图完整版下载高清_快速学习 Python 的全套 14 张思维导图(附高清版下载)...

    来源:机器学习算法与自然语言处理 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库).按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典 ...

  7. 关于主机的思维导图_几张思维导图,让你清楚的知道ip地址怎么回事?

    网络工程中,ip地址是必须要了解的内容,今天我们用几张思维导图来给大家详细讲解IP地址. 一.什么是IP地址 在生活中我们使用具有上网功能的电子设备都有IP地址,就跟每个人都有自己的名字一样.IP地址 ...

  8. python编程思维导图_用来梳理 Python 编程核心知识15张思维导图

    原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...

  9. java中怎样导入图片6_java程序员进阶篇之必须掌握的6张思维导图!

    原标题:java程序员进阶篇之必须掌握的6张思维导图! <java程序员的自我修养>的作者是MindMaster思维导图社区用户芒果,作者整理了一系列学习java程序的笔记,方便java程 ...

  10. 力荐!Python的14张思维导图 | 附下载方式

    (点击上方快速关注并设置为星标,一起学Python) 作者:ZY    链接: https://woaielf.github.io/2017/06/13/python3-all/#top 本文按顺序依 ...

最新文章

  1. 转载 为什么不要 lock(this) ? lock object 并是readonly
  2. php 计算两点时间距离,PHP计算地球上两点之间的距离(示例详解)
  3. 可以把阿里云上面的一些介绍和视频都看看
  4. 微软获GPT-3独家授权,可访问底层代码,Open AI:API用户可继续使用
  5. 【Android 插件化】Hook 插件化框架 ( hook 插件化原理 | 插件包管理 )
  6. 巧用DOS命令合并多个文本文件的内容
  7. Swift语言快速入门
  8. 年轻——塞缪尔.厄尔曼
  9. Silverlight中使用动画的技巧
  10. python httplib2的安装
  11. [UVALive 3983] Robotruck
  12. nginx的基础学习+实战
  13. C++学习(二六七)find_package() find_library()
  14. 华北电力大学微型计算机,华北电力大学 微机原理与应用
  15. 论fastadmin里面token加密方式
  16. Operations-ansible-01
  17. Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)
  18. windo10系统哪个版本运行最快呢?
  19. Cesium飞行效果
  20. 开源知识管理系统_半个月收获接近 1k 的点赞!你需要的开源项目都在这里

热门文章

  1. Oracle Trunc
  2. 常用技巧性CSS:颜色渐变,截断英文单词,阴影文字.
  3. 多线程与多进程(转载)
  4. CUDA计算向量内积的程序(源自CUDA范例编程)
  5. linux重要目录之usr和var
  6. SQL Server如何存储特殊字符、上标、下标
  7. mysql 行转列 列转行
  8. 《编写高质量Python代码的59个有效方法》——第19条:用关键字参数来表达可选的行为...
  9. 用 python 实现各种排序算法(转)
  10. Movie播放Gif,完美实现屏幕适配