python进阶18正则表达式
原创博客链接: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正则表达式相关推荐
- Python进阶之正则表达式
1. 关于正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用 ...
- Python进阶-正则表达式
Python进阶系列 Python进阶-网络编程-01 Python进阶-网络编程-02 Python进阶-网络编程-03 Python进阶-多任务编程-01 Python进阶-多任务编程-02 Py ...
- 《Python进阶系列》十六:详解Python中的正则表达式
正则表达式 概述 正则表达式为高级的文本模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则 ...
- [.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门
[.net 面向对象程序设计进阶] (2) 正则表达式 (一) 快速入门 1. 什么是正则表达式? 1.1 正则表达式概念 正则表达式,又称正则表示法,英文名:Regular Expression(简 ...
- 知识点 —— Python进阶-3
Python进阶–3 单例模式 常用开发模式之一 用途 确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 A ...
- Python进阶之递归函数的用法及其示例
作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 | AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...
- Python自学路线图之Python进阶
Python自学路线图的第二个阶段是Python进阶学习,自学完后需要掌握的Python技能: 1.自学Linux操作系统,熟练使用Linux操作系统: 自学网络编程,掌握网络编程相关技术, 能够实现 ...
- python进阶 多线程编程 —— threading和queue库实现多线程编程
python进阶 多线程编程 -- threading和queue库实现多线程编程) 摘要 多线程实现逻辑封装 模型参数选择实例 摘要 本文主要介绍了利用python的 threading和queue ...
- 【Python进阶】带你使用Matplotlib进行可视化
欢迎来到专栏<Python进阶>.在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件.数据的处理,Python各种好用的库如NumPy.Scipy.Matplotl ...
最新文章
- 为什么不用原生Spring-Cloud-Config
- 1秒极速求解PDE:深度神经网络为何在破解数学难题上独具天赋?
- 三种SQL分页查询的存储过程
- 提高阅读源代码的效率 转
- JavaScript中OOP——面向对象中的继承/闭包
- nginx 在阿里云怎么安装mysql_阿里云Linux服务器安装 nginx+mysql+php
- wordcount.java_mapreduce中wordcount的java实现
- Spring框架----Confinguration和Component-Scan注解
- C#中DataRow的初始化
- ❤️六万字《Spring框架从入门到精通》(建议收藏)❤️
- 虚拟参考站(VRS)
- 牛客网暑期ACM多校训练营(第四场)G Maximum Mode(思维)
- R语言统计—配对t检验样本量计算
- 适合小型团队的在线文档管理系统【minDoc】
- uni-app教程支付php,uni-app IOS app微支付、支付宝整合记录
- JProfiler ERROR: Invalid license key. Aborting.
- macbook 安装win7
- 经典算法题型(二):二维数组(平面地图)的递归操作
- java 推流_使用java执行ffmpeg命令进行推流操作
- 怎么卸载光速头条_教你怎么卸载光速浏览器