正则表达式

Posted 4565892

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

1.前提是引入import re

匹配邮箱后缀需要写入r=r‘\.com\.cn|\.com|\.cn‘

r=r‘(\[email protected]\w+(\.com\.con|\.com|\.cn))‘
ll=re.findall(r,"[email protected]")
print(ll)
2.正则常用的函数 compile
www=r‘a[bcd]c‘
p=re.compile(www)
jj=p.findall("abcd,adc,aac,acc")
print(jj)
3.使用match和search匹配的时候一定要注意加括号分组
r=r‘(a[bcd]e)‘
ll=re.match(r,"ace,ade,afe,age,abe")
print(ll.group())


match只匹配开头


r=r‘(a[bcd]e)‘
ll=re.search(r,"afe,ade,afe,age,abe")
print(ll.group())
search匹配全文,但是都是返回到匹配的第一个内容


strw="welcome to python world"
r=r‘(.*) to (.*?).*‘
ll=re.match(r,strw)
if ll:
print(ll.group(0),1)#匹配整个字符串表达式
print(ll.group(1),2)
print(ll.group(2),3)
print(ll.groups(),4)
print(ll.group(1,2),5)



4.高级使用方法:
  
c=re.sub(r"a..d","python","adfd,affd,aood,qappd")
print(c)
c=re.sub(r"a..d",‘python‘,‘addd,adfd,afdf,eealld‘,2)#后面的2是匹配次数
print(c)
c=re.subn(r‘a..d‘,‘python‘,‘afdd,addd,awwd,avvd‘)
print(c)#返回一个元组,就是比sub多了一个匹配的个数
c=re.split(r‘[\+\-\*\/]‘,"1+2*3/4")
print(c)#按正则进行切割
 
 
 

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式