您的位置:首页 > 编程语言 > Python开发

python使用正则表达式例子

2017-10-30 21:42 211 查看

正则表达式有什么用?

正则表达式的恰当运用可以提高查找效率

减少代码量,便于维护

简单易学,适用于所有编程语言

下面来看一些例子

import re

s = '38x1x234x35x612x3yxxx'

patten1 = re.compile("x.*x") #返回一个,中间重复x
print '1\n',patten1.findall(s)
patten2 = re.compile("x\w.*?x") #中间至少有一个字符.xx不行
print '2\n',patten2.findall(s)
patten3 = re.compile("x.*?x")  #返回多个.不重复
print '3\n',patten3.findall(s)
patten4 = re.compile("x+(.*?[xy])") #以x开头但开头不包含x,结尾以x或y结束
print '4\n',patten4.findall(s)


运行结果:

1
['x1x234x35x612x3yxxx']
2
['x1x', 'x35x', 'x3yx']
3
['x1x', 'x35x', 'x3yx', 'xx']
4
['1x', '35x', '3y', 'x']特殊情况只有一个字符开头和结果都是x


实际应用解析html

得到所有链接

import re
def fomatLink(content):
pattenLink = re.compile('''[(src)(href)]=["'](.*?)['"]''')
links = pattenLink.findall(content)
return links

s = '''<a href="http://news.4399.com/hxjy/"><img alt="4399火线精英" src="http://imga5.5054399.com/upload_pic/2017/9/20/4399_15094597623.jpg">4399火线精英</a>'''

print fomatLink(s)


运行结果:

['http://news.4399.com/hxjy/', 'http://imga5.5054399.com/upload_pic/2017/9/20/4399_15094597623.jpg']
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 正则表达式