python3 re正则_Python3 re正则的基本使用方法

flags常用常量

re.I 全写re.IGNORECASE,忽略大小写

import re

string = '123Aa123'

re.search('aa', string) # None

re.search('aa', string, re.I) # Aa

re.A 全写re.ASCII,让\w、\b、\s、\d等特殊字符只匹配ASCII码,而不是匹配Unicode

import re

string = '我爱你520Love'

re.search('\w+', string) # '我爱你520Love'

re.search('\w+', string, re.A) # '520Love' 因为中文不在ASCII表

re.S 全写re.DOTALL让.匹配所有字符,包括\n换行符

import re

string = '123.\n123'

re.search('3.*?3', string) # None

re.search('3.*?3', string, re.S) # '3.\n123'

re.M 全写re.MULTILINE,多行模式,用^可以匹配多行模式下的开头。默认只能匹配第一个开头

import re

string = '123\n123'

re.findall('^\d2', string) # ['12']

re.findall('^\d2', string, re.M) # ['12', '12']郑州治疗胎记哪家好http://www.zzzykdmlk

四、结合例子

1、比如匹配整个HTML页面的图片.

PS::需要注意的是 如果findall()里面包含有() 他会为里面的()分组,如果我们不在最外边加括号的话,那么我们只能得到他里面() 给我们所分的组。那为什么match() search()又不需要呢,是他们默认最外层有(括号)

# 页面源码是html

import re

imglist = re.findall('(http(s)?://.*?(png|jpg))', html) # 返回列表[('最外层括号内容','顺序括号内容1', '顺序括号内容2'), ]

# 例如

html = 'url(http://img.baidu.com/img/baike/logo-baike.jpg)sfseurl(https://img.baidu.com/img/baike/logo-baike.png)'

imglist1 = re.findall('https{0,1}://.*?\.(png|jpg)', html) # 不加括号,他只得到图片后缀 既 imglist1 = ['jpg', 'png']

imglist2 = re.findall('(https{0,1}://.*?\.(png|jpg))', html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值