https://edu.51cto.com/center/course/lesson/index?id=344062
正则课程介绍
Match tracer 验证正则
文档
工具字典
语法界面
字符类 普通 所见即所得
中括号 字符范围
高亮表示匹配到了
只能匹配a到c
中括号里面的任意一个
^是管整个方括号里面的东西
后面跟上at
正则 上一次匹配的结束是下一次匹配的开始 重点
第二次从f开始匹配
第二次从a开始匹配 匹配不到 然后从t开始匹配
匹配除了a到d 的任意一个字符
圆括号里面的内容是一个整体 竖线 或的意思
分组里面匹配多个重复字符
预定义字符类
每一行结束都有一个换行符
换行符的匹配
换行符 空白 肉眼看不见
匹配所有字符
字母数字下划线
\W 除了字母 数字 下划线
量词 贪婪 勉强 侵占
量词模式
X 表示正则表达式
量词尽量多的匹配字符串
默认都是贪婪模式:尽量多的匹配目标串
单独的时候是匹配一个分号 但是加上后面的\d之后就匹配到了两个分号
问题
匹配了两个而不是三个
量词种类
勉强在贪婪模式上面加了个问号 每一项都是
侵占就是在贪婪模式的后面加了一个加号
贪婪:尽可能多的匹配 且能够回退?
勉强:尽量少的匹配目标串 但不是不匹配 有就匹配
侵占:尽量多的匹配目标串且不回退
贪婪 勉强 侵占 详解
回退 第二次匹配的时候 只有一个a了 不够了 但是可以回退 之前匹配过的一次a
再第二次匹配的时候也参与了 回退
前面一个a都不匹配
整个表达式 匹配一个a
匹配三次
每次匹配两次 只能匹配一次
一个一个往后吐 吐出第一个的时候 表达式就能拿到匹配了
一次匹配
没次匹配一个a
匹配不到
一次匹配
只能匹配一次 勉强不能回退
匹配不到
两次匹配 不回退吗
回退对大括号无效?
一次匹配
匹配一次 吐一个a
吐一个a 把后边的a 加入
一次匹配 这里为什么不回退了?
回退是指多匹配的吐出来 补充后面的,而不是前面的去掉一部分 和后面的一起匹配
不匹配
不回退
贪婪 勉强 侵占实例讲解
尽可能多的匹配 那就就会去匹配 第二个foo
第一个foo 就匹配不到了
首先吐出一个o 再吐一个o 最后吐个f 就可以匹配了
一次匹配
第二次匹配的过程
两次匹配
首先匹配所有的字符 因为不回退 所以一次都匹配不上
刚开始匹配 到美元符号之前的所有 然后吐字符 到小写的d
一次匹配
刚开始匹配2 但后面不是字母 所有不行 继续 直到上面
第一次匹配
第二次匹配
第三次
这里开始就不行了
3次匹配
一次都不能匹配
捕获组
把取出的数字都放在分组里面 小括号里面
分组匹配到的内容
高亮
代码例子
两次匹配
反向引用
编号方式
从左到右 从外到里进行编号
最外面是第一个分组 0 整个表达式
反向引用

匹配两个数字
是对整匹配结果的替换 不能只替换其中一部分? 错 应该是可以的 先拿出分组 在替换需要替换的部分
前面括号里的内容再出现一次
搞不懂
问题
非捕获组 零断言表达式
每次都有一个分组
没有子分组了 只留下全部匹配 分组匹配就不要了
零宽度断言
正向肯定预查 一般放到表达式的结尾
正向否定预查 放在表达式的开头
反向肯定预查
反向否定预查
零宽度断言
56后面必须跟上9
前面不能是4
零宽度断言 不匹配内容 只匹配中间的内容
也不计算在分组里面
把前面和后面变成零宽度断言 主要中间的部分
反向在前面
正向在后面
模式修正符
修正正则表达式 sigmex
前面搭配后面的字母
搭配i忽略大小写
A 忽略大小写 b 只能是小写
边界匹配器
让正则匹配更加精准
行首
行尾
和单词首
单词尾
一般是空格
Same 结尾
总结和实例讲解
Js 里面的用法 斜线开头
s出现可以 不出现也可以
和两边的斜杠是冲突的
问号和其他字符组合放在括号的开头的时候要注意其特殊的用法
这里\W 本来就是特殊含义 不需要转义成其真正含义
Url 带参数
网上的正则不一定是想要的
正则匹配:
分类 进行匹配
三个都写到或者里面其会匹配最大的
aa='资中县双河街道办事处'
comp=re.compile(r'(街道办事处|街道|处)')
res=comp.findall(aa)
把最长的写在最前面
数字中间不能用横杠
正则只适合于匹配 有规则的 且中间无其他干扰的情况的识别
四川自治区内江市资中县双河街道办事处安木店村7单元12号
地址这种东西感觉不能用正则匹配出来 不管是贪婪,勉强还是侵占都无法实现 多个分组 并且中间穿插了其他字符的情况
固定的800多种组合是可以实现的
固定一种规则是可以的 中间没有问号 但是开始位置还是无法确定
上面区的情况 和园的情况 都可以长的部分放到前面去解决
这种和其他混淆度太高 直接不用其作为判断标准 删除好了
https://edu.51cto.com/center/course/lesson/index?id=344062
正则课程介绍
Match tracer 验证正则
文档
工具字典
语法界面
字符类 普通 所见即所得
中括号 字符范围
高亮表示匹配到了
只能匹配a到c
中括号里面的任意一个
^是管整个方括号里面的东西
后面跟上at
正则 上一次匹配的结束是下一次匹配的开始 重点
第二次从f开始匹配
第二次从a开始匹配 匹配不到 然后从t开始匹配
匹配除了a到d 的任意一个字符
圆括号里面的内容是一个整体 竖线 或的意思
分组里面匹配多个重复字符
预定义字符类
每一行结束都有一个换行符
换行符的匹配
换行符 空白 肉眼看不见
匹配所有字符
字母数字下划线
\W 除了字母 数字 下划线
量词 贪婪 勉强 侵占
量词模式
X 表示正则表达式
量词尽量多的匹配字符串
https://www.cnblogs.com/kevin-yuan/archive/2012/09/02/2667428.html
贪婪 勉强 侵占
默认都是贪婪模式:尽量多的匹配目标串
单独的时候是匹配一个分号 但是加上后面的\d之后就匹配到了两个分号
问题
匹配了两个而不是三个
量词种类
勉强在贪婪模式上面加了个问号 每一项都是
侵占就是在贪婪模式的后面加了一个加号
贪婪:尽可能多的匹配 且能够回退?
勉强:尽量少的匹配目标串 但不是不匹配 有就匹配
侵占:尽量多的匹配目标串且不回退
贪婪 勉强 侵占 详解
回退 第二次匹配的时候 只有一个a了 不够了 但是可以回退 之前匹配过的一次a
再第二次匹配的时候也参与了 回退
前面一个a都不匹配
整个表达式 匹配一个a
匹配三次
每次匹配两次 只能匹配一次
一个一个往后吐 吐出第一个的时候 表达式就能拿到匹配了
一次匹配
没次匹配一个a
匹配不到
一次匹配
只能匹配一次 勉强不能回退
匹配不到
两次匹配 不回退吗
回退对大括号无效?
一次匹配
匹配一次 吐一个a
吐一个a 把后边的a 加入
一次匹配 这里为什么不回退了?
回退是指多匹配的吐出来 补充后面的,而不是前面的去掉一部分 和后面的一起匹配
不匹配
不回退
贪婪 勉强 侵占实例讲解
尽可能多的匹配 那就就会去匹配 第二个foo
第一个foo 就匹配不到了
首先吐出一个o 再吐一个o 最后吐个f 就可以匹配了
一次匹配
第二次匹配的过程
两次匹配
首先匹配所有的字符 因为不回退 所以一次都匹配不上
刚开始匹配 到美元符号之前的所有 然后吐字符 到小写的d
一次匹配
刚开始匹配2 但后面不是字母 所有不行 继续 直到上面
第一次匹配
第二次匹配
第三次
这里开始就不行了
3次匹配
一次都不能匹配
捕获组
把取出的数字都放在分组里面 小括号里面
分组匹配到的内容
高亮
代码例子
两次匹配
反向引用
编号方式
从左到右 从外到里进行编号
最外面是第一个分组 0 整个表达式
反向引用

匹配两个数字
是对整匹配结果的替换 不能只替换其中一部分? 错 应该是可以的 先拿出分组 在替换需要替换的部分
前面括号里的内容再出现一次
搞不懂
问题
非捕获组 零断言表达式
每次都有一个分组
没有子分组了 只留下全部匹配 分组匹配就不要了
零宽度断言
正向肯定预查 一般放到表达式的结尾
正向否定预查 放在表达式的开头
反向肯定预查
反向否定预查
零宽度断言
4万+

被折叠的 条评论
为什么被折叠?



