一张思维导图,让正则表达式不再难懂
一张精彩的导图
导图内容解析
- 语法结构
- 字符
- 普通字符:字母、数字、汉字、下划线,匹配与之相同的一个字符
- 简单转义字符:\n(换行),\t(制表),\\(\本身)和 \^...(\^等有特殊作用的符号如要匹配自己的话要用转义)
- 标准字符集合
注意区分大小写,大写是相反的意思,匹配相反是不匹配- \d
任意一个数字,0~9 - \w
任意一个字母、数字、汉字或下划线,A~Z、a~z、0~9、_和任意一个汉字 - \s
任意空白符,包括空格、制表符、换行符 - .
小数点可以匹配任意一个字符,换行除外(如果要匹配包括"\n"在内的所有字符,一般用[\s\S])
- \d
- 自定义字符集合
[ ]方括号匹配方式,能够匹配方括号中的任意一个字符,^表示取反- [ab5@]
匹配"a"或"b"或"5"或"@" - [^abc]
匹配a、b、c之外的任意字符 - [f-k]
匹配“f"到"k"之间的字符 - [^A-F0-3]
匹配“A"-"F","0"-"3"之外的任意一个字符
- [ab5@]
- 量词(Quantifier)
修饰前面的一个表达式,如果要修饰多个表达式,就用( )把表达式包起来- {n}
表达式重复n次 - {m,n}
表达式至少重复m次,最多重复n次- 贪婪模式 (默认)
匹配符合的最长的字符串 - 非贪婪模式 (在量词后面加 ? 例:{m,n}? )
匹配符合的最短的字符串
- 贪婪模式 (默认)
- {m,}
表达式至少重复m次 - ?
匹配表达式0或1次,相当于{0,1} - +
表达式至少出现一次,相当于{1,} - *
表达式不出现或出现任意次,相当于{0,}
- {n}
- 字符边界
零宽:匹配的不是字符而是位置,符合某种条件的位置- ^
与字符串开始的地方匹配 - $
与字符串结束的地方匹配 - \b
匹配一个单词的边界,当前位置前面的字符和后面的字符不全是\w
- ^
- 预搜索(零宽断言、环视)
零宽:匹配的不是字符而是位置,符合某种条件的位置- (?=exp)
断言自身出现的位置的后面能匹配表达式exp - (?!exp)
断言自身出现的位置的后面不能匹配表达式exp - (?<=exp)
断言自身出现的位置的前面能匹配表达式exp - (?<!exp)
断言自身出现的位置的前面不能匹配表达式exp
- (?=exp)
- 匹配模式
对文本的处理方式- IGNORECASE 忽略大小写模式
- 匹配时忽略大小写
- 默认是区分大小写的
- SINGLELINE 单行模式
- 整个文本看作一个字符串,只有一个开头一个结尾
- 使小数点"."可以匹配包含换行符(\n)在内的任意字符
- MULTILINE 多行模式
- 每行都是一个字符串
- 在多行模式下,如果需要仅匹配字符串开始和结束位置,可以使用\A和\Z
- IGNORECASE 忽略大小写模式
- 选择符和分组
分支结构、捕获组合非捕获组- | 分支结构
左右表达式之间“或”关系,匹配左边或右边 - ( ) 捕获组
- (1)、在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
- (2)、取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
- (3)、每一对括号会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。捕获编号为零的第一个捕获是整个正则表达式模式匹配的文本
- 反向引用:通过反向引用,可以对分组已捕获的字符串进行引用。
- (?:Expression) 非捕获组
一些表达式中,不得不使用(),但又不需要保存()中子表达式匹配的内容,这时可以用非捕获组来抵消()带来的副作用。 - 原文发布时间为:2017-10-16
- 本文作者:java思维导图
- 本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。
- | 分支结构
一张思维导图,让正则表达式不再难懂相关推荐
- 用一张思维导图去全面学习通信网里的各种技术
相信大家在刚开始接触通信网络的时候,会碰到各种的技术名词.我画了一张思维导图来给大家捋一捋这些技术之间的关系,对学习和记忆十分有用.废话不说,上图.全文涉及的内容较多,请耐心食用. 1.通信网的组成 ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- 16张思维导图+学习路线图,囊括所有Python基础,可打印
今天给大家分享的是关于Python基础的14张思维导图,对于大家知识的梳理会有很大的帮助,另外还有两张Python学习路线图,全面系统,让初学者不走弯路.一起来看一看吧! 前面知识回顾!!!!! 程序 ...
- GitHub 13.1k | 所有的编程知识,都在这100 张思维导图里了
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 转自:量子位 编程里能用到的所有知识,都在这里了. 这个号称东半球最全最酷的编程学习项目,不仅 ...
- 所有的编程语言知识,都包含在这100张思维导图里了丨GitHub 13.1k星
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 编程里能用到的所有知识,都在这里了. 这个号称东半球最全最酷的编程学习项目,不仅容纳了30万字的算法图解题典.100张各种编程语言的思维导图 ...
- python思维导图完整版下载高清_快速学习 Python 的全套 14 张思维导图(附高清版下载)...
来源:机器学习算法与自然语言处理 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库).按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典 ...
- 关于主机的思维导图_几张思维导图,让你清楚的知道ip地址怎么回事?
网络工程中,ip地址是必须要了解的内容,今天我们用几张思维导图来给大家详细讲解IP地址. 一.什么是IP地址 在生活中我们使用具有上网功能的电子设备都有IP地址,就跟每个人都有自己的名字一样.IP地址 ...
- python编程思维导图_用来梳理 Python 编程核心知识15张思维导图
原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...
- java中怎样导入图片6_java程序员进阶篇之必须掌握的6张思维导图!
原标题:java程序员进阶篇之必须掌握的6张思维导图! <java程序员的自我修养>的作者是MindMaster思维导图社区用户芒果,作者整理了一系列学习java程序的笔记,方便java程 ...
- 力荐!Python的14张思维导图 | 附下载方式
(点击上方快速关注并设置为星标,一起学Python) 作者:ZY 链接: https://woaielf.github.io/2017/06/13/python3-all/#top 本文按顺序依 ...
最新文章
- 转载 为什么不要 lock(this) ? lock object 并是readonly
- php 计算两点时间距离,PHP计算地球上两点之间的距离(示例详解)
- 可以把阿里云上面的一些介绍和视频都看看
- 微软获GPT-3独家授权,可访问底层代码,Open AI:API用户可继续使用
- 【Android 插件化】Hook 插件化框架 ( hook 插件化原理 | 插件包管理 )
- 巧用DOS命令合并多个文本文件的内容
- Swift语言快速入门
- 年轻——塞缪尔.厄尔曼
- Silverlight中使用动画的技巧
- python httplib2的安装
- [UVALive 3983] Robotruck
- nginx的基础学习+实战
- C++学习(二六七)find_package() find_library()
- 华北电力大学微型计算机,华北电力大学 微机原理与应用
- 论fastadmin里面token加密方式
- Operations-ansible-01
- Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)
- windo10系统哪个版本运行最快呢?
- Cesium飞行效果
- 开源知识管理系统_半个月收获接近 1k 的点赞!你需要的开源项目都在这里