正则介绍和知识点

用来简洁表达一组字符串的表达式。

编译:将符合正则表达式语法的字符串转换成正则表达式特征

正则表达式语法由字符和操作符构成

re库是Python的标准库 用import re调用

r'text\f\sdfs[{?' 用此方法来转义字符串

Match对象是一次匹配的结果,包含匹配的很多信息

Re库默认采用贪婪匹配,即输出匹配最长的子串

贪婪匹配和最小匹配 如 r'PY.*N'r'PY.*?N' 。用?

只要长度输出可能不同的,都可以通过在操作符后增加?变成最小匹配

常用的操作符

操作符

.                表示任何单个字符
[]               字符集,对单个字符给出取值范围
[^ ]             非字符集,对单个字符给出排除范围
*                前一个字符0次或无限次扩展
+                前一个字符1次或无限次扩展
?                前一个字符0次或1次扩展
|                左右表达式任意一个
{m}              扩展前一个字符m次
{m,n}            扩展前一个字符m至n次(含n)
^                匹配字符串开头
$                匹配字符串结尾
( )              分组标记,内部只能使用 | 操作符
\d               数字,等价于[0‐9]
\w               单词字符,等价于[A‐Za‐z0‐9_]

经典实例

^[A-Za-z]+$                    26个字母组成的字符串
^[A‐Za‐z0‐9]+$                 26个字母和数字组成的字符串
^‐?\d+$                        整数形式的字符串
^[0‐9]*[1‐9][0‐9]*$            正整数形式的字符串
[1‐9]\d{5}                     境内邮政编码6位
[\u4e00‐\u9fa5]                匹配中文字符

Re库主要功能函数

功能函数

re.search()   在字符串中搜索匹配正则表达式第一个位置,返回match对象
re.match()    从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall()  搜索字符串,以列表类型返回全部能匹配的子串
re.splite()   将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer() 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
re.sub()      在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

字符串匹配

import re
s = re.search(r'[1-9]\d{5}','BITfs 1000894654')  #匹配后6位数字
if s:print(s.group(0))ls = re.findall(r'[1-9]\d{5}','fsfsd100081 fsdfs100084')   #以列表的形式匹配
print(ls)spt = re.split(r'[1-9]\d{5}','fsfs100088 sfsdf100099')     #分割字符串
print(spt)
spt_max = re.split(r'[1-9]\d{5}','fsfs100088 sfsdf100099 vxc5464654',maxsplit=1)   #最大分割数
print(spt_max)for m in re.finditer(r'[1-9]\d{5}','fdsgdf5646165 vxcvx3113213 ewrer4461313'):     #迭代if m:print(m.group(0))sb = re.sub(r'[1-9]\d{5}',':zipcode','fdsgdf5646165 vxcvx3113213')   #替换字符串
print(sb)

运行后

正则的等价用法:

import re
rst = re.search(r'[1-9]\d{5}','fsdf5465465')
if rst:print(rst.group(0))print('-'*50)
#re 库的另一种等价用法
#面向对象用法
pat = re.compile(r'[1-9]\d{5}')
rst = pat.search('fsdf5465465')  #pat.xxx(string)  string表示待匹配的字符串
if rst:print(rst.group(0))

参数

re.search(pattern, string, flags=0)
re.match(pattern, string, flags=0)
re.findall(pattern, string, flags=0)
re.split(pattern, string, maxsplit=0, flags=0)
re.finditer(pattern, string, flags=0)
re.sub(pattern, repl, string, count=0, flags=0)
regex = re.compile(pattern, flags=0)

pattern : 正则表达式的字符串或原生字符串表示
string :  待匹配字符串
flags :   正则表达式使用时的控制标记
repl :    替换匹配字符串的字符串
count :   匹配的最大替换次数
maxsplit: 最大分割数,剩余部分作为最后一个元素输出

match对象

属性

.string      待匹配的文本
.re          匹配时使用的patter对象(正则表达式)
.pos         正则表达式搜索文本的开始位置
.endpos      正则表达式搜索文本的结束位置

方法

.group(0)    获得匹配后的字符串
.start()     匹配字符串在原始字符串的开始位置
.end()       匹配字符串在原始字符串的结束位置
.span()      返回(.start(), .end())

最小匹配操作符

*?    前一个字符0次或无限次扩展,最小匹配
+?    前一个字符1次或无限次扩展,最小匹配
??   前一个字符0次或1次扩展,最小匹配
{m,n}  扩展前一个字符m至n次(含n),最小匹配

总结

python操作re正则表达式的精简总结相关推荐

  1. Python 开发-2 (文件操作,正则表达式,类,JSON,装饰器,异常处理,Socket)

    文章目录 文件操作 递归创建目录 删除文件或目录 拷贝文件 修改文件名或目录名 文件路径名操作 判断文件,目录是否存在 文件大小与修改时间 当前目录与目录切换 遍历目录文件 遍历目录下指定后缀 目录文 ...

  2. job for nginx.service failed_用Python操作Kubernetes的Job

    关于Kubernetes的Python SDK,几乎只有官方项目的examples.关于Job的基本增删改查操作,可以参考job_crud.py.但是,这只是基本用法,缺乏一些实用细节. 本文给出Py ...

  3. Python菜鸟之路:Python基础-Python操作RabbitMQ

    RabbitMQ简介 rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思.rabbitmq服务类似于mysql.apache服务,只是提供的功能不一样.ra ...

  4. Python高级语法-正则表达式

    正则表达式在字符串匹配中起到巨大的作用. 简介 几个数据提取工具对比: re(正则表达式):速度很快,难度高(语法难记),不需要安装(python标准库内置) bs(BeautifulSoup):速度 ...

  5. python里面的正则表达式_Python中的正则表达式

    以下内容转自:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Pyth ...

  6. java连接mongodb_第78天: Python 操作 MongoDB 数据库介绍

    MongoDB 是一款面向文档型的 NoSQL 数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以 K/V 形式存储,结构不固定,它的字段值可以包含其他文档.数组和文档数组等.其采 ...

  7. 抓狐狸python_​用Python操作Kubernetes的Job

    本文给出Python SDK操作Kubernetes Job的更多示例代码,以及相关解释. pip install kubernetes 初始化 from kubernetes.client impo ...

  8. [Python]网络爬虫(七):Python中的正则表达式教程(转)

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

  9. [Python]网络爬虫(七):Python中的正则表达式教程

    接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...

最新文章

  1. mysql docker 2003_解决远程连接mysql 报 2003错误的问题(docker)
  2. TCP/IP详解 笔记十三
  3. c语文编程提取郑码的单字码表
  4. APUE(7)---进程环境
  5. 如何做一名优秀的电子工程师[zz]
  6. Eclipse 下如何引用另一个项目的资源文件
  7. PHPCMS V9.6.0 SQL注入漏洞EXP
  8. 【读书笔记】《暗时间》
  9. Matlab学习笔记之Matlab中括号用法
  10. 详解 Elasticsearch refresh 机制
  11. 甘超波:NLP如何挖掘信念
  12. Nginx反向正向代理
  13. java 雷达反射面积_请问:如何使用基本反射率雷达图中的dBZ值判断天气情况?比如多云、雷雨、晴等。谢谢!...
  14. AutoCAD C# 自动加载自定义RibbonUI界面
  15. assoc php,PHP array_uintersect_assoc 函数
  16. Linux 管理联网 nmcli常用命令
  17. 【随堂笔记】数据结构基础
  18. keil 报错解决 Loading PDSC Debug Description failed forSTMicroelectronics STM32xxxx
  19. 报名 | 相约杭州,我们来聊聊区块链技术与行业应用落地
  20. java 操作 cfs_Lucene 打开cfs文件 并获取数据

热门文章

  1. 腾讯三面:40 亿个 QQ 号码如何去重?
  2. 基于Modbus协议RTU模式的HITECH PWS6A00T触摸屏与PIC单片机的通信
  3. Gitlab: 取消邮箱验证的方法(API方式)
  4. Kobe -新建文件
  5. 今天14:00|AAAI 专场二,复旦、上海交大、NUIST等8位讲者
  6. 使用millis函数制作大范围的方波脉冲计数器
  7. bat命令批量获取和修改文件名
  8. 三维图形编程OpenGL的glut文件配置(vs2022)
  9. Python旅游好帮手:提前15天准备五一旅游景点详细数据
  10. 读书笔记:《代码大全第2版》布局与风格