Python正则表达式学习小例子
正则表达式是处理字符串的强大工具。作为一个概念而言,正则表达式对于Python来说并不是独有的。但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别。
(1)匹配1-100之间的数
importre
s='100'#1-100内的任意数字
ret=re.match(r'(100|[1-9]\d{0,1})$',s)
print(ret.group())
(100|[1-9]\d{0,1})$
100可以匹配100|或者匹配[1-9]中的一个数,然后后面\d是数字,后面的{0,1}匹配最多一个数字或没有数字
[1-9]\d意思是只能是前面是1-9的任意数字主要是不包括0,否则01是不允许,后面是任意包括0。
(2)匹配座机号码
010-67132692,其构造规则为[3位数字][-][8位数字]
或者
0516-8978981,其构造规则为[4位数字][-][7位数字]
importre
s="010-67132692"
ret=re.search(r'^\d{3,4}-\d{7,8}$',s)
print(ret.group())
注意:print(ret.group(0))一样的效果,python默认可以0,不用()也可以获取,一般php与js中都是\1开始
(3)对输入的qq号进行匹配(qq匹配规则:长度为5-10位,纯数字组成,且不能以0开头。)
importre
s="1101111123"
ret=re.match(r'[1-9]\d{4,9}$',s)
ifret!=None:
print(ret.group())
else:
print('匹配失败!')
(4)查找字符串中有多少个af
importre s="asdfjvjadsffvaadfkfasaffdsasdffadsafafsafdadsfaafd" ret=re.findall(r'(af)',s) print(len(ret))
(5)规则是按照空格出现一次或者多次切割
importre s="zhangsanlisiwangwu" res=re.compile(r'\s+') ret=res.split(s) print(ret)
效果图:
(6)用正则\\切割
importre s="c:\\abc\\a.txt" res=re.compile(r'\\') ret=res.split(s) print(ret)
效果图:
(7)将连续5个以上数字替换成#
importre
s="wer8934605juo123wa89320571f"
res=re.compile(r'\d{5,}')
ret=res.sub('#',s)
print(ret)
效果图:
(8)取出字符串中的所有字母
importre s="abDEe23dJfd343dPOddfe4CdD5ccv!23rr" res=re.compile(r'[a-zA-Z]+') ret=res.findall(s) print(ret)
效果图:
(9)找出以字母e结尾的单词,忽略大小写
importre s='THREEpeopleatHEREdosomeTHING' res=re.compile(r'\w+e\b',re.I)#\b为边界 ret=res.findall(s) print(ret)
效果图:
(10)将多个重复字母替换成&
importre
s="cudddbhuuujdddcaa"
res=re.compile(r'([a-zA-Z])\1+')
ret=res.sub('&',s)
print(ret)
效果图:
(11)将多个重复字母替换成一个字母(比如ddd替换成d)
importre s="cudddbhuuujddd" res=re.compile(r'([a-zA-Z])\1+') ret=res.sub(r'\1',s) print(ret)
效果图:
(12)获取长度为3个字母的单词
importre
s="mintianjiuyaofangjiale,dajia"
ret=re.findall(r'\b\w{3}\b',s)
print(ret)
效果图:
(13)将字符串变成'我要学编程'
importre s="我我...我我...我要..要要...要要...学学学...学学...编编编..编程..程.程...程...程" res=re.sub(r'\W+','',s) ret=re.sub(r'(.)\1+',r'\1',res) print(ret)
效果图:
(14)去掉div和b标签
结果:正则表达式练习
importre s="正则表达式 练习
效果图:
(15)找出每行中只有3个数字的字符串
importre s='''121fefe 3qsqse2 ded6d32 aaaaa1a 1234adc ''' ret=re.findall(r'^\D*\d\D*\d\D*\d\D*$',s,re.M) print(ret)
效果图:
以下是补充
收集一些常用的python正则练习
#匹配出0-99之间的数字
print("---匹配出0-99之间的数字---")
ret=re.match(r"^[1-9]?[0-9]$","77")
print(ret.group())
#8到20位的密码,可以是⼤⼩写英⽂字⺟、数字、下划线
print("---,8到20位的密码,可以是⼤⼩写英⽂字⺟、数字、下划线---")
ret=re.match("[\w_]{8,20}","1123dasf1")
print(ret.group())
#匹配出163的邮箱地址,且@符号之前有4到20位,例如hello@163.com
print("---匹配出163的邮箱地址,且@符号之前有4到20位,例如hello@163.com---")
ret=re.match("[\w_]{4,20}@163\.com","evan_qb@163.com")
print(ret.group())
print("---b---")
ret=re.match(r".*\b163\b","evan_qb@163.com")
print(ret.group())
#匹配1-100之间的数
print("---匹配1-100之间的数---")
ret=re.match("[1-9]?\d$|100","100")
print(ret.group())
#匹配163、126、qq邮箱
print("---匹配163、126、qq邮箱---")
ret=re.match("[\w_]{4,20}@(163|126|qq)\.com","123342@126.com")
print(ret.group())
#匹配helloworld
print("---匹配helloworld---")
ret=re.match(r"<([a-zA-Z]*)>.*\1>","helloworld")
print(ret.group())
#第一种:匹配出www.itcast.cn
print("---第一种:匹配出www.qblank.cn
---")
ret=re.match(r"<(\w*)><(\w*)>.*\2>\1>","www.itcast.cn
")
print(ret.group())
#第二种:匹配出www.qblank.cn
print("---第二种:匹配出www.qblank.cn
")
ret=re.match("<(?P\w*)><(?P\w*)>.*(?P=name2)>(?P=name1)>","www.qblank.cn
")
print(ret.group())
#******re模块的高级用法*****
#使用search匹配文章的阅读的次数
print("---匹配文章的阅读的次数---")
ret=re.search(r"\d+","阅读次数为9999")
print(ret.group())
#统计出python、c、c++相应⽂章阅读的次数
print("---统计出python、c、c++相应⽂章阅读的次数---")
ret=re.findall(r"\d+","python=2342,c=7980,java=9999")
print(ret)
#将匹配到的阅读次数加1
print("---将匹配到的阅读次数加1---")
ret=re.sub(r"\d+","999","python=997")
print(ret)
#
#岗位职责:
#完成推荐算法、数据统计、接⼝、后台等服务器端相关⼯作
#
必备要求:
良好的⾃我驱动⼒和职业素养,⼯作积极主动、结果导向
#
技术要求:
#1、⼀年以上 Python 开发经验,掌握⾯向对象分析和设计,了解设计模式
#2、掌握HTTP协议,熟悉MVC、MVVM等概念以及相关WEB开发框架
#3、掌握关系数据库开发设计,掌握 SQL,熟练使⽤ MySQL/PostgreSQL 中的⼀种
#4、掌握NoSQL、MQ,熟练使⽤对应技术解决⽅案
#5、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js
#
加分项:
#⼤数据,数理统计,机器学习,sklearn,⾼性能,⼤并发。
#
data="""
岗位职责:
完成推荐算法、数据统计、接⼝、后台等服务器端相关⼯作
必备要求:
良好的⾃我驱动⼒和职业素养,⼯作积极主动、结果导向
技术要求:
1、⼀年以上 Python 开发经验,掌握⾯向对象分析和设计,了解设计模式
2、掌握HTTP协议,熟悉MVC、MVVM等概念以及相关WEB开发框架
3、掌握关系数据库开发设计,掌握 SQL,熟练使⽤ MySQL/PostgreSQL 中的⼀种
4、掌握NoSQL、MQ,熟练使⽤对应技术解决⽅案
5、熟悉 Javascript/CSS/HTML5,JQuery、React、Vue.js
加分项:
⼤数据,数理统计,机器学习,sklearn,⾼性能,⼤并发。
"""
print("---爬取就业信息网址---")
#方法一:关闭贪婪模式
print("---方法一---")
ret=re.sub(r"<.+?>","",data)
print(ret)
#方法二:
print("---方法二---")
ret=re.sub(r"?\w+>","",data)
print(ret)
#切割字符串“info:xiaoZhang 33 shandong”
print("---切割字符串“info:xiaoZhang 33 shandong”---")
ret=re.split(r":|","切割字符串info:xiaoZhang 33 shandong")
print(ret)
#This is a number 234-235-22-423
data="This is a number 234-235-22-423"
print("---贪婪和非贪婪---")
#贪婪
ret=re.match(".+(\d+-\d+-\d+-\d+)",data)
print(ret.group(1))
#非贪婪
ret=re.match(".+?(\d+-\d+-\d+-\d+)",data)
print(ret.group(1))
#提取图片的url
data="""
"""
print("---提取图片的url")
ret=re.search(r"https.+?\.jpg",data)
print(ret.group())
data="""
http://www.interoem.com/messageinfo.asp?id=35
http://3995503.com/class/class09/news_show.asp?id=14
http://lib.wzmc.edu.cn/news/onews.asp?id=769
http://www.zy-ls.com/alfx.asp?newsid=377&id=6
http://www.fincm.com/newslist.asp?id=415
"""
#去掉后缀
print("---去掉后缀---")
ret=re.sub(r"(http://.+?/).*",lambdax:x.group(1),data)
print(ret)
#找出所有单词
data="hello world ha ha"
print("---找出所有单词---")
print("--方法一--")
ret=re.split(r"+",data)
print(ret)
print("--方法二--")
ret=re.findall(r"\b[a-zA-Z]+\b",data)
print(ret)
到此这篇关于Python正则表达式学习小例子的文章就介绍到这了,更多相关Python正则学习例子内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。