当前位置:网站首页>正则表达式-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函数系统,但是返回一个元组
边栏推荐
- Redis源码剖析之robj(redisObject)
- How to solve the 0x80070005 error when the computer is reinstalled and the system is restored
- 万物皆可柯里化的 Ramda.js
- 5G China unicom repeater network management protocol real-time requirements
- Flutter Getting Started and Advanced Tour (8) Button Widget
- Data Mining-06
- 电脑重装系统还原0x80070005错误如何解决
- Use RecyclerView to implement three-level collapsed list
- 某高校的R语言数据分析期末作业
- Sandbox中的进程/线程相关-1
猜你喜欢
Unicom network management protocol block diagram
5G China unicom AP:B SMS ASCII Transcoding Requirements
GIN Bind模式获取参数和表单验证
第六届“强网杯”全国网络安全挑战赛
RTSP协议讲解
新起之秀 DPU,正在掀起数据中心变革!
kustomize entry example and basic syntax instructions
电脑重装系统后桌面图标如何调小尺寸
Explanation of RTSP protocol
5G China unicom repeater network management protocol real-time requirements
随机推荐
telnet+ftp to control and upgrade the device
剑指 Offer 56 - II. 数组中数字出现的次数 II(位运算)
[FPGA Tutorial Case 48] Image Case 8 - Realization of Converting RGB Image to HSV Image Based on FPGA, Assisted Verification by MATLAB
gin的中间件和路由分组
WebView injects Js code to realize large image adaptive screen click image preview details
OOM排查和处理
jenkins api create custom pipeline
Redis源码剖析之robj(redisObject)
glibc 内存管理模型 释放 C库内存缓存
5G China unicom 一般性异常处理
5G China unicom general exception handling
JVM常用监控工具解释以及使用
Rust from entry to proficient 04 - data types
WSA工具箱安装应用商店提示无法工作怎么解决?
用plot_hist_numeric()实现画直方图
RTSP协议讲解
Flutter Getting Started and Advanced Tour (4) Text Input Widget TextField
[MRCTF2020]套娃-1
About the handling of variable parameters in the Retrofit network request URL
用场景定义硬件,英码科技破解“边缘计算”密码