当前位置:网站首页>正则表达式-re模块
正则表达式-re模块
2022-08-09 12:51:00 【某x?】
re模块
re模块是python独有的匹配字符串的模块,但是很多功能是基于正则表达式实现的,所以re模块多用于正则匹配
| re标志位 | 作用 |
|---|---|
| re.I | 忽略大小写 |
| re.L | 让\w,\W,\b,\B和区分大小写的匹配取决于当前的语言环境。该标志只能与字节模式一起使用。不建议使用此标志,因为语言环境机制非常不可靠,它一次只能处理一种“区域性”,并且仅适用于8位语言环境。默认情况下,Python 3中已为Unicode(str)模式启用了Unicode匹配,并且能够处理不同的语言环境/语言。 |
| re.M | 多行模式 |
| re.S | 使’.‘特殊字符与任何字符都匹配,包括换行符;没有此标志,’.'将匹配除换行符以外的任何内容。 |
常用方法
re.compile(pattern,flags=0)
将正则表达式模式编译为正则表达式对象,可使用match、search等方法进行匹配
# 生成正则对象 prog = re.compile('\d{2}') prog.search('12abc') prog.match('123abc') prog.search('12abc').group() # 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。match也一样 # 输出 <_sre.SRE_Match object; span=(0, 2), match='12'> <_sre.SRE_Match object; span=(0, 2), match='12'> '12're.search(pattern,string,flags)
扫描字符串以查找正则表达模式产生匹配项的第一个位置,然后返回match对象.
re.search('\w+','abcde').group() # 'abcde're.match(pattern,string,flags=0)
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。
re.match('a','abcade').group() # 'a're.findall(pattern,string,flags=0)
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意**:** match 和 search 是匹配一次 findall 匹配所有。
import re ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345") print(ret) # ['9999', '7890', '12345']re.finditer()
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
import re it = re.finditer(r"\d+", "12a32bc43jf3") for match in it: print(match.group())re.sub(pattern,repl,string,count=0,flags=0)
sub是substitute的所写,表示替换,将匹配到的数据进⾏替换。
参数 描述 pattern 必选,表示正则中的模式字符串 repl 必选,要替换的字符串,也可以为一个函数 string 必选,被替换的字符串 count 可选,要替换的最大次数,如果省略或为0,则全部被替换 flag 标志位 # 替换为字符串 import re ret = re.sub(r"\d+", '998', "python = 997") print(ret) # 替换为函数 import re def add(temp): #int()参数必须是字符串,类似字节的对象或数字,而不是“re.Match” strNum = temp.group() num = int(strNum) + 1 return str(num) ret = re.sub(r"\d+", add, "python = 997") print(ret) ret = re.sub(r"\d+", add, "python = 99") print(ret)re.subn()
跟sub函数系统,但是返回一个元组
边栏推荐
- 绘制混合密度函数图以及添加分位数线
- 【FPGA教程案例48】图像案例8——基于FPGA的RGB图像转化为HSV图像的实现,通过MATLAB进行辅助验证
- 在“Extend the Omniverse”比赛中构建用于 3D 世界的工具
- 【奖励公示】第23期 2022年7月奖励名单公示:社区明星评选 | 新人奖 | 博客同步 | 推荐奖
- FFMPEG多媒体文件处理(ffmpeg文件的删除与重命名)
- Flutter Getting Started and Advanced Tour (4) Text Input Widget TextField
- leetcode 20. Valid Parentheses 有效的括号(中等)
- 30行代码实现蚂蚁森林自动偷能量
- Customize VIEW to realize in-app message reminder to rotate up and down
- Redis源码剖析之数据过期(expire)
猜你喜欢
随机推荐
How to save Simulink simulation model as image or PDF
5G China unicom 一般性异常处理
Rust from entry to proficient 04 - data types
FFmpeg多媒体文件处理(ffmpeg处理流数据的基本概念)
2.微服务'黑话'集锦及Eureka注册中心相关概念
CPU-MIPS32 instruction architecture (unlocked pipeline microprocessor)
glibc 内存管理模型 释放 C库内存缓存
read stream 特别注意
gin的中间件和路由分组
ERP不规范,同事两行泪 (转载非原创)
R 语言 2010.1至2021.12艾滋病每月发病人数 时间序列分析
陈强教授《机器学习及R应用》课程 第十五章作业
陈强教授《机器学习及R应用》课程 第十四章作业
5G China unicom general exception handling
LnReader编译
Simple encapsulation of glide tool class
腾讯发布第二代四足机器人Max,梅花桩上完成跳跃、空翻
Unicom network management protocol block diagram
Microsoft 10/11 命令行打开系统设置页(WUAP,!WIN32)
The new features of ABP 6.0.0 - rc. 1









