AI
推荐
模板社区
专题
登录
免费注册
首页
思维导图
详情
正则表达式学习笔记
2021-10-15 17:17:04
1
举报
分享方式
使用 (¥3)
AI智能生成
正则表达式学习笔记,源自于极客时间上的正则表达式课程的学习,记录常用的语法,便于随时查看
正则表达式
学习笔记
元字符
语法
效率工具
模板推荐
作者其他创作
大纲/内容
分组与引用
功能
将某部分作为一个整体
在后续环节需要重复引用
分组编号
第几个括号,就是第几组,从1开始,括号嵌套依然适用
分组会自动捕获,用于后面复用方便,(?:)表示不捕获
命名分组:(?P<命名>...)
分组引用
\number
不同语言,比如js可能是$number
查找、替换中均可以适用分组引用
匹配模式
模式使用方式
(?模式修饰符)正则,即放到正则的开头
((?i)csc)xxx,表示只有csc那块不区分大小写
js中是/regex/i,模式在正则之后
不区分大小写
不区分大小写模式的指定方式,使用模式修饰符 (?i)
修饰符如果在括号内,作用范围是这个括号内的正则,而不是整个正则
使用编程语言时可以使用预定义好的常量来指定匹配模式
re.findall(r"cat", "CAT Cat cat", re.IGNORECASE)<br>
点号通配符模式
多行模式
注释模式
断言
正则中是指对匹配文本的位置进行限定
分类
单词边界
\b表示单词的边界
re.sub(r"\btom\b", "jerry", "tom cat tommorrow")
行开始/结束
^ 行开始
$ 行结尾
\A 和\z匹配整个字符串的开始和结束
环视
也称为“零宽断言”
用于限定匹配文本左右的内容
分类
(?<=YYY)左边为YYY的目标文本
(?<!YYY)左边不是YYY的目标文本
(?=YYY)右边是YYY的目标文本
(?!YYY)右边不是YYY的目标文本
单词边界本质上也可以写成环视
\b\w+\b
(?<!\w)\w+(?!\w)
(?<=\W)\w+(?=\W)
环视虽然也有小括号,但是不会被提取到分组
因为分组的都是匹配到的文本内容
环视只是匹配位置,不匹配文本
转义字符
作用
编码无法用字母表表示的特殊数据
表示无法直接用键盘录入的字符
之所以称为转义字符,是因为它后面的字符不是原来的含义了
转义步骤
1.字符串转义
2.正则转义
要在正则中表示单纯的/,需要在字符串中使用////
转义括号
在正则中方括号 [] 和 花括号 {} 只需转义开括号,但圆括号 () 两个都要转义
正则表达式流派(Flavor)
POSIX标准
BRE(Basic Regular Expression 基本正则表达式)
ERE(Extended Regular Expression 扩展正则表达式)
[[:digit:]]
更多的用于Linux中
PCRE标准
主流
是大多数编程语言的正则实现标准
最大的特点是:支撑\d\w\s等
grep默认是POSIX标准
grep -P sed -P 表示使用PCRE标准
《精通正则表达式》(第 3 版)和 《正则指引》(第 2 版)
导入
不是工作中用不到,而是当你不熟悉一个技能的时候,遇到问题时根本不会考虑它
正则 Regular Expression
正则其实就是一种描述文本内容组成规律的表示方式
正则功能
校验数据有效性
提取文本中想要的内容
文本切割、替换
书
《操作系统真相还原》
《自制编程语言-基于c语言》
《正则指引》
元字符 Metacharacter
所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符
分类
特殊单字符
. 任意字符,换行除外
真正的任意字符,应该是:[\d\D] 、[\s\S]、[\w\W]
\d 任意数字 \D 任意非数字
\w 任意字母数字下划线 \W 任意非字母数字下划线
\s 任意空白符 \S 任意非空白符
空白符
\s 任意空白符
\r 回车符
\n 换行符
\f 换页符
\t 制表符
\v 垂直制表符
量词
* 0到多次
+ 1到多次
? 0到1次
{m} m次
{m,} 至少m次
{m,n} m到n次
范围
|或 ab|bc
[...] 多选一
[a-z] a-z中的任一个
[^...] 不是[]中的任一个
断言
量词与贪婪
模式会改变正则中量词的匹配行为
贪婪匹配 Greedy
尽可能进行最长的匹配
会回溯
非贪婪匹配 Lazy
尽可能进行最短的匹配
在量词后面加上?就可以变为Lazy模式
会回溯
独占模式 Possessive
python默认不支持
不回溯
收藏
立即使用
RuoYi项目模块依赖图
收藏
立即使用
大模型与AI的各个领域
收藏
立即使用
Python类型层次结构
收藏
立即使用
《管理百年》读书笔记
白也图库
职业:信息中心负责人
去主页
Collect
Get Started
正则表达式
Collect
Get Started
正则表达式
Collect
Get Started
精通正则表达式
Collect
Get Started
正则表达式
评论
0
条评论
下一页
图形选择
思维导图
主题
补充说明
AI生成
修改AI描述
去编辑
重新生成
提示
关闭后当前内容将不会保存,是否继续?
取消
确定
Document