什么是正则表达式?

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),用于字符串的 匹配 和 提取 等操作。正则表达式在所有编程语言中都是通用的。

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

匹配模式

匹配单个字符

.
[ ]
\d
\D
\s
\S
\w
\W

匹配多个字符

*
+
?
{m}
{m,n}

匹配字符串首尾:

在正则表达式的首部添加 ^ ,意味着待匹配的字符串从首部就要和正则式匹配。类似的,正则式尾部添加 $ ,表示待匹配的字符串从尾部需和正则式匹配。

^
$

常用的正则表达式: https://c.runoob.com/front-en...

匹配分组

利用分组, 可以提取字符串中想要的指定内容。用括号 () 括起来的正则表达式表示一个分组,通过 group() 函数可获取分组中的字符串。例子:

# 匹配电话号码, 匹配模式中有两个分组:(\d{3})、(\d{3,8})
>>> m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
>>> m
<_sre.SRE_Match object; span=(0, 9), match='010-12345'>
>>> m.group(0)  # 用group函数可以提取匹配的部分
'010-12345'
>>> m.group(1)  # group(1)表示第一个分组
'010'
>>> m.group(2)  # group(2)表示第一个分组
'12345'

如果想判断字符串中 是否具有规律相同的多个子串 时, 可以采用分组:

例如,正则表达式 <(\w*)>.*<(/\1)> 可以匹配 <h1>fadsfas</h1> ,不能匹配 <h1>fadsfas</h2> 。

当分组个数过多时,可以给分组起别名,在同一个正则表达式中重复引用该分组。

  • 分组起别名: (?P<name>___) 其中 ___ 填写分组内的正则式
  • 引用别名为name的分组: (?P=name)

re模块

在Python中,re模块已为我们实现了正则表达式的相关操作:

  • re.match() : 从头开始匹配,可以利用分组获得我们想要的子串。用法见上文。
  • re.search() : 无需从头开始匹配,只返回 匹配的第一个子字符串 。
  • re.findall() : 找到字符串中 所有匹配的字符串 ,与 search() 不同, findall() 直接返回一个list。
  • re.sub() : 利用正则表达式将匹配到的字符串 批量替换 。
  • re.split() :利用正则表达式 分割字符串 ,返回一个list。

例子:

# re.search()
In [7]: ret = re.search(r"hello", "hello world! hello world!")
In [8]: ret.group()
Out[8]: 'hello'# re.findall()
In [9]: ret = re.findall(r"hello", "hello world! hello world!")
In [10]: print(ret)
['hello', 'hello']# re.sub()
In [15]: ret = re.sub(r"hello","bye", "hello world! hello world!")
In [16]: ret
Out[16]: 'bye world! bye world!'# re.split()
In [12]: ret = re.split(r":| ","hello:YMN 25 shenyang")  # 按:或空格分割字符串
In [13]: ret
Out[13]: ['hello', 'YMN', '25', 'shenyang']

Python-关于正则表达式的总结相关推荐

  1. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  2. python使用正则表达式判别字符串是否以一个大写字符起始而跟随了一些小写字符

    python使用正则表达式判别字符串是否以一个大写字符起始而跟随了一些小写字符 # # Python3 code to find sequences of one upper # case lette ...

  3. python使用正则表达式统计字符串中出现次数最多的数字

    python使用正则表达式统计字符串中出现次数最多的数字 #python使用正则表达式统计字符串中出现次数最多的数字 # find the most occurring element import ...

  4. python使用正则表达式识别大写字母并在大写字母前插入空格

    python使用正则表达式识别大写字母并在大写字母前插入空格 #python使用正则表达式识别大写字母并在大写字母前插入空格 import redef putSpace(input):# regex ...

  5. python使用正则表达式删除字符串中的其它字符只保留数字和字母

    python使用正则表达式删除字符串中的其它字符只保留数字和字母 #python使用正则表达式删除字符串中的其它字符只保留数字和字母 # Python code to demonstrate # to ...

  6. python使用正则表达式寻找具有特定后缀的文件

    python使用正则表达式寻找具有特定后缀的文件 # python使用正则表达式寻找具有特定后缀的文件 # import library import re# list of different ty ...

  7. python使用正则表达式抽取字符串中最大数值数字

    python使用正则表达式抽取字符串中最大数值数字 #python使用正则表达式抽取字符串中最大数值数字 # Function to extract maximum numeric value fro ...

  8. python使用正则表达式去除句子中的重复词

    python使用正则表达式去除句子中的重复词 #python使用正则表达式去除句子中的重复词 # Python program to remove duplicate words # using Re ...

  9. python使用正则表达式检测给定的URL地址是否合法

    python使用正则表达式检测给定的URL地址是否合法 # python使用正则表达式检测给定的URL地址是否合法 # python使用正则表达式检测给定的URL地址是否合法 # Check if a ...

  10. python使用正则表达式验证邮箱地址语法有效性

    python使用正则表达式验证邮箱地址语法有效性 #python使用正则表达式验证邮箱地址语法有效性 import re # mail regular expression formula# rege ...

最新文章

  1. python计算身体质量指数_利用Python计算身体质量指数BMI来判断体型
  2. 其他系统 对外接口设计_设计模式分类及设计原则
  3. cachecloud:Redis云管理平台
  4. 使用Nginx+Lua(OpenResty)开发高性能Web应用
  5. hdu 4539(状压dp)
  6. [vue] 你有使用做过vue与原生app交互吗?说说vue与ap交互的方法
  7. python爬虫框架scrapy实例详解_python爬虫框架scrapy实例详解
  8. c# 开发window服务
  9. cmd无法运行python_为什么CMD无法运行python程序
  10. Mac新手必备技巧-如何使用 macOS 帮助菜单?
  11. git 查看和修改用户名及邮箱
  12. linux gdb 执行命令,Linux中gdb命令起什么作用呢?
  13. sql2000 数据库置疑解决办法
  14. AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(三)
  15. 数据集介绍 - Matting and Segmentation
  16. 网络安全实验室|网络信息安全攻防学习平台(基础关)
  17. 如何消除原生Android,如何消除原生Android网络状态上的惊叹号
  18. 多账户交易PAMM / MAM
  19. html中图片自动循环滚动代码,JavaScript代码实现图片循环滚动效果
  20. linux系统c语言重命名文件,C语言文件操作函数

热门文章

  1. django-查询-F对象-Q对象
  2. docker清理磁盘占用
  3. 安卓页面布局中android:gravity与android:layout_gravity的区别
  4. GSK携手学术机构共建健康大数据系统
  5. Exchange 2013 SP1部署系列7:发送连接器的配置
  6. JSP 中的几种注释
  7. 页面的访问速度如何提高?(我所知道的,哪位高手有其它的高见,敬请提醒....)...
  8. 在IIS服务器上安装SSL证书
  9. Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
  10. Mac或者Linux安装RabbitMQ