匹配标签:
import re ret=re.search('<(?P<tag_name>\w+)>\w+,\w+</(?P=tag_name)>','<h1>hello,xuanxuan</h1>') print(ret.group())
运行结果:
其实我现在就是目标是后面待匹配的字符串,练习一下前面怎么写正则规则;
然后还可以使用另一种方法:
import re ret=re.search(r'<(\w+)>\w+</\1>',"<h1>hello</h1>") print(ret.group())
运行结果:
匹配整数
import re ret=re.findall('-?\d+\.\d+|(-?\d+)','-23*34.25+78-23.12+23-89') ret.remove('') #因为有两个空格 ret.remove('') print(ret)
这里用到了findall()在匹配字符串时,如果前面的正则规则是包含分组,则会优先匹配分组中的内容,之所以还会写前面那个匹配小数的就是因为如果只写或|h后面的 那么结果就会包含小数的整数部分,这显然是不合理的~
运行结果:
数字匹配
1. 匹配一段文本中每行的邮箱: http://blog.csdn.net/make164492212/article/details/51656638
import re ret=re.search(r'\w+://\w+\.\w+\.\w+/\w+/\w+/\w+/\w+','http://blog.csdn.net/make164492212/article/details/51656638') print(ret.group())
运行结果:
2. 匹配一行文本中每行的时间字符串,比如:1990-07-15(有一点问题有待解决,,,,)
import re ret=re.search('[1-2]\d{3}-[0]\d-[0-2]\d|([30,31])','1990-07-15') print(ret.group())
其实这个写的有问题,就是中间的月份我不知道怎么分开匹配,用|或的话后面的时间就匹配不上啦,,,
运行结果:
3. 匹配QQ号(从10000开始)
import re ret=re.search('[1-9][]0-9]{4,}','2398409012023') print(ret.group())
运行结果:
4. 匹配浮点数
import re ret=re.search('\d+\.\d+','45.56') print(ret.group())
运行结果:
5. Eva-J博客上的爬虫我没看太懂,,,,
6.作业题---实现一个计算器(使用正则表达式)
实现能计算类似 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式的计算器程序
待完善。。。