有关正则表达式的前要知识


正则表达式断言解释

正则表达式断言有以下类型:

  1. 零宽正向先行断言;
  2. 零宽负向先行断言;
  3. 零宽正向后行断言;
  4. 零宽负向后行断言。

所谓的零宽断言,也就是与想要匹配字段的中间不能有其他字符,断言字符与想要匹配的字符是挨在一起的,比如说 (后行断言)匹配字符(先行断言) 先行断言是匹配字符后面紧挨着的内容,理解为:预匹配的字符串先行;后行断言是匹配字符前面紧挨着的内容,理解为:断言匹配内容在预匹配的字符串前面,下面我们分别来看一下这四种断言的语法格式,并进行具体情况使用分析:

  • 零宽正向先行断言:
    语法格式: (?=pattern)
import re
s = 'a regular expression'
print(re.findall(r"re(?=gular)", s))
# 匹配re 匹配的是 后面又 gular 的re  只会匹配到一个re
# 断言部分 (?=xxx) 只是用来确定位置的
# 零宽正向断言 就在我想匹配的字符的后面设置 匹配位置- 输出结果: ['re']
  • 零宽负向先行断言:
    语法格式: (?!pattern)
    其实这里的负向就是:字符段后面不是 pattern 内容的。
s = 'a regular expression'
print(re.findall(r"re(?!gular)", s))
# 匹配的是 后面没有 gular的 re 匹配的是 expression 这个单词的re- 输出结果:['re']# 这个例子不够清楚,下面来一个更清晰易懂的例子
s = 'a eregular expression'
print(re.findall(r".re(?=gular)", s))- 输出结果: ['ere']
print(re.findall(r".re(?!gular)", s))- 输出结果: ['pre']- 通过增加一个占位符,我们得到了这个结果- 可以看到的发现所匹配的字段的不同位置
  • 零宽正向后行断言:
    语法格式: (?<=pattern)
s = "a regular1 expgular2 reegular3"
print(re.findall(r"(?<=re)gular.", s))- 输出结果: ['gular1']

这里我们看到,匹配到的字段是 gular1 ,是前面的字符内容是 re 的 gular 字段被匹配到了,这就是零宽正向后行断言。

  • 零宽负向后行断言:
    语法格式: (?<!pattern)
    其实这里的负向就是:字符前面不是 pattern 内容的,和上面的零宽负向先行断言的意思一致,通过 ! 取反。
s = "a regular1 expgular2 reegular3"
print(re.findall(r"(?<!re)gular", s))
# 匹配 左边不是re 的 gular- 输出结果: ['gular2', 'gular3']

这里就是全部关于正则表达式断言的知识点总结了,在使用正则的时候则需要更多考虑使用,与正则的其他使用规范配合达到匹配目的字段内容的目的。
如果想了解更多,欢迎来访 三创.
这边关于正则断言的使用:python 爬取网站图片
这里就用到了正则断言

Python 正则 —— 正则表达式断言相关推荐

  1. python正则怎么取反_第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反...

    一.引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是组模式的扩展 ...

  2. python正则匹配_python 正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  3. 第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反

    一. 引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是组模式的扩 ...

  4. python正则匹配_Python正则表达式详解

    正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述.匹配某个句法规则的字符串,常被用来检索.替换那些符合某个模式(规则)的文本.最初的正则表达式出现于理论计算机 ...

  5. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  6. python正则r的作用_Python正则表达式,这一篇就够了!

    原标题:Python正则表达式,这一篇就够了! 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达 ...

  7. python正则取反,Python正则表达式

    好久没复习Python了,感觉很多东西都快忘了,趁着假期赶紧补一补基础 什么是正则 正则表达式使用单个字符串来描述,匹配一系列符合某个句法规则的字符串,简单理解,就是对字符串的检索匹配和处理 Pyth ...

  8. python正则取反_python 正则表达式

    python 正则表达式 一. re 模块用于对python的正则表达式的模式匹配模式描述 ^匹配字符串的开头. $匹配字符串的末尾. .匹配任意字符除了换行符当re.DOTALL标记被指定时则可以匹 ...

  9. python正则匹配任意字符_Python 匹配任意字符(包括换行符)的正则表达式写法...

    Python 匹配任意字符(包括换行符)的正则表达式写法 想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现 ...

最新文章

  1. 互联网企业的移动布局
  2. 职场经典小故事-II
  3. prism项目搭建 wpf_WPF Step By Step 系列-Prism框架在项目中使用
  4. Kibana安装及简单使用
  5. Chrome浏览器插件新建标签页插件Momentum
  6. RabbitMQ如何实现延迟队列?
  7. Gitbook 常用命令
  8. 第 7 章 排序算法
  9. Hibernate配置文件,映射文件
  10. python pyquery 解析html数据(2)
  11. 关于胶质母细胞瘤的影像组学和影像基因组学
  12. Comparator 实现集合中元素的比较.输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这321323
  13. AS13 facets cannot be loaded. you can mark them as ignored to suppress this error notification处理
  14. matlab去除摩尔纹,索尼ILCE-7RM2测评——理论画质篇
  15. js正则表达式获取后缀名_jquery如何获取文件后缀
  16. python-爬取中国评书网音频
  17. 禁用Windows Defender Antivirus Service,让你文件正常运行
  18. vue 停车场车牌号键盘微信支付
  19. 黑马程序员_基础复习八(网络编程)
  20. android 手势输入法,搜狗手机输入法Android 4.6版新增手势操作

热门文章

  1. 运营必须掌握的APP数据分析体系
  2. Qlik Sense 临时处理表数据详解(Resident)
  3. 携程App无线开发全流程介绍
  4. 吉他入门教程之如何练习演奏技巧—循序渐进
  5. 【年度总结】这两张工卡,说明我的2019没有白费——YY语音和滴滴出行
  6. python 读取与修改 XML(增删改查)
  7. VE的大众化和问题点
  8. 《网络安全0-100》安全策略制定
  9. HTML大学生动漫网页设计作业源码 ~ 火影忍者动漫7页面带特效带轮播(HTML+CSS+JavaScript)...
  10. c语言数组下标为负数