骚气的Python之正则表达式

本文介绍了正则表达式的基本用途及其如何简化编程任务。通过具体示例展示了不同正则表达式的匹配方式,并演示了如何使用正则表达式从HTML中提取链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###正则表达式有什么用?

  1. 正则表达式的恰当运用可以提高查找效率
  2. 减少代码量,便于维护
  3. 简单易学,适用于所有编程语言

###下面来看一些例子

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']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值