当前位置: 首页 > 后端技术 > Python

Python-正则表达式总结

时间:2023-03-26 11:50:00 Python

什么是正则表达式?正则表达式(regularexpression)描述了一种字符串匹配方式(pattern),用于字符串匹配、提取等操作。正则表达式在所有编程语言中都很常见。匹配模式匹配单个字符。:匹配任意1个字符(n除外)[]:匹配[]中的任意字符\d:匹配数字,即0-9\D:匹配非数字\s:匹配空格,即空格、tab键\S:匹配非空\w:匹配单词字符,即a-z、A-Z、0-9、_\W:匹配非单词字符匹配多个字符*:匹配前一个字符0次或无限次,可选+:匹配previouscharacteronceorinfinitely,thatisatleastonetime?:匹配前一个字符一次或零次,即一次或无{m}:匹配前一个字符出现m次{m,n}:匹配前一个字符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对象;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)>可以匹配

fadsfas

但不能匹配

fadsfas

。当分组过多时,可以给分组起一个别名,在同一个正则表达式中可以重复引用分组。组别名:(?P___)其中___填写组中的正则表达式,指的是别名为name的组:(?P=name)remodule在Python中,re模块已经实现了正则表达式us公式的相关操作:re.match():从头开始??匹配,可以使用分组得到我们想要的子串。用法见上。re.search():不需要从头开始匹配,只返回匹配到的第一个子串。re.findall():查找字符串中所有匹配的字符串。与search()不同,findall()直接返回一个列表。re.sub():使用正则表达式批量替换匹配到的字符串。re.split():使用正则表达式拆分字符串并返回一个列表。示例:#re.search()In[7]:ret=re.search(r"hello","helloworld!helloworld!")In[8]:ret.group()Out[8]:'hello'#re.findall()In[9]:ret=re.findall(r"hello","helloworld!helloworld!")In[10]:print(ret)['hello','hello']#re.sub()In[15]:ret=re.sub(r"hello","bye","helloworld!helloworld!")In[16]:retOut[16]:'byeworld!byeworld!'#re.split()In[12]:ret=re.split(r":|","hello:YMN25shenyang")#按:或空格拆分字符串In[13]:retOut[13]:['hello','YMN','25','shenyang']本文由多发平台ArtiPub自动发布