原创博客链接:python进阶18正则表达式

正则基础知识

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
^`:匹配行首
`$`:匹配结尾
`*`:(**贪婪**)前面字符匹配任意多次
`+`:(**懒惰**)前面字符匹配1或者更多次
`?`:前面字符匹配0或1次,还作为懒惰限定符使用,详看后面`{m}`:前面字符匹配m次
`{m,n}`:前面字符匹配m~n次
`{m,}`:前面字符匹配m或更多次
`{,n}`:前面字符匹配0~n次`|`:或,必须加括号`.`:匹配除换行符以外的任意字符
`[1357]`:匹配1,3,5,7中其中一个数字,当然也可以是字母
`[0-9]`:匹配0到9的其中一个数字,类似用法还有:[a-zA-Z]
`[\u4E00-\u9FA5]`:匹配中文
`[^012]`:表示除012外的任意字符,包括3-9,a-z,A-Z,等等
注意:[]里面的.和*等一些特殊字符都失去特殊意义,只表示本身。

分组捕获

1
2
3
4
5
6
7
8
9
10
11
import re
str = 'booy123'
regex = '((boy|booy)123)'# 如果有多个括号,则从最外面往里算,从1开始re_match = re.match(regex, str)
re_match.group(1)
# 'booy123'
re_match.group(2)
# 'booy'

懒惰限定符

如果有多个贪婪,则第一个最贪婪

1
2
3
4
5
6
7
*? :重复任意次,但尽可能少重复
+? :重复1次或更多次,但尽可能少重复
?? :重复0次或1次,但尽可能少重复
{n,m}? :重复n到m次,但尽可能少重复
{n,}?: 重复n次以上,但尽可能少重复
str = 'abooabbapds aboksldap'
obj = re.compile('ab.*?ap') #注意用非贪婪匹配,不然list里只有一个

匹配和搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
match_list = obj.findall(str)  #match_list是一个list
# match_list -> ['abooabbap','aboksldap']for match in match_list:print(match)
# 输出
# abooabbap
# aboksldap
import restr = 'abooabbapds aboksldap'
obj = re.compile('ab.*?ap')
match_list = obj.finditer(str)
# match_list -> callable_iterator对象,需要用group()查询for match in match_list:print(match.group())
# abooabbap
# aboksldap

参考

Python正则表达式急速入门:https://baijiahao.baidu.com/s?id=1652504385879645545&wfr=spider&for=pc
正则表达式必知必会:python.iswbm.com/en/latest/c01/c01_11.html
Python 正则表达式:https://www.runoob.com/python/python-reg-expressions.html
Python正则表达式指南:https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

python进阶18正则表达式相关推荐

  1. Python进阶之正则表达式

    1. 关于正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用 ...

  2. Python进阶-正则表达式

    Python进阶系列 Python进阶-网络编程-01 Python进阶-网络编程-02 Python进阶-网络编程-03 Python进阶-多任务编程-01 Python进阶-多任务编程-02 Py ...

  3. 《Python进阶系列》十六:详解Python中的正则表达式

    正则表达式 概述 正则表达式为高级的文本模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则 ...

  4. [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门

    [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简 ...

  5. 知识点 —— Python进阶-3

    Python进阶–3 单例模式 常用开发模式之一 用途 确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 A ...

  6. Python进阶之递归函数的用法及其示例

    作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  7. Python自学路线图之Python进阶

    Python自学路线图的第二个阶段是Python进阶学习,自学完后需要掌握的Python技能: 1.自学Linux操作系统,熟练使用Linux操作系统: 自学网络编程,掌握网络编程相关技术, 能够实现 ...

  8. python进阶 多线程编程 —— threading和queue库实现多线程编程

    python进阶 多线程编程 -- threading和queue库实现多线程编程) 摘要 多线程实现逻辑封装 模型参数选择实例 摘要 本文主要介绍了利用python的 threading和queue ...

  9. 【Python进阶】带你使用Matplotlib进行可视化

    欢迎来到专栏<Python进阶>.在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件.数据的处理,Python各种好用的库如NumPy.Scipy.Matplotl ...

最新文章

  1. 为什么不用原生Spring-Cloud-Config
  2. 1秒极速求解PDE:深度神经网络为何在破解数学难题上独具天赋?
  3. 三种SQL分页查询的存储过程
  4. 提高阅读源代码的效率 转
  5. JavaScript中OOP——面向对象中的继承/闭包
  6. nginx 在阿里云怎么安装mysql_阿里云Linux服务器安装 nginx+mysql+php
  7. wordcount.java_mapreduce中wordcount的java实现
  8. Spring框架----Confinguration和Component-Scan注解
  9. C#中DataRow的初始化
  10. ❤️六万字《Spring框架从入门到精通》(建议收藏)❤️
  11. 虚拟参考站(VRS)
  12. 牛客网暑期ACM多校训练营(第四场)G Maximum Mode(思维)
  13. R语言统计—配对t检验样本量计算
  14. 适合小型团队的在线文档管理系统【minDoc】
  15. uni-app教程支付php,uni-app IOS app微支付、支付宝整合记录
  16. JProfiler ERROR: Invalid license key. Aborting.
  17. macbook 安装win7
  18. 经典算法题型(二):二维数组(平面地图)的递归操作
  19. java 推流_使用java执行ffmpeg命令进行推流操作
  20. 怎么卸载光速头条_教你怎么卸载光速浏览器

热门文章

  1. http协议里的chunked编码与测试
  2. VLC设置串流的TTL值
  3. pat编程语言_浙江大学在线pat题库集合
  4. mysql的面试2_mysql数据库面试题(2)
  5. @sql 单元测试_SQL单元测试:使用异常
  6. –is-dba_查询存储–每个DBA的下一代工具
  7. C++ 类的成员函数指针 ( function/bind )
  8. C#中字符串操作函数
  9. React Router学习
  10. @WebFilter()配置servlet访问出现404的原因