python3网络爬虫:正则表达式特殊符号和编译正则表达式3(五)

 python3网络爬虫:正则表达式特殊符号和编译正则表达式3(五)

 

'''
正则表达式特殊符号及用法
\A 匹配输入字符串的开始位置
\Z 匹配输入字符串的结束位置
\b 匹配一个单词边界,字母数字或下划线字符
\B 匹配非单词边界,和\b相反
\d 匹配任何一个数字
\D 匹配任何非数字
\s  1、对于unicode模式,匹配unicode中的空白字符包括([\t\n\r\f\v])以及其他空白字符。如果开启了re.ASCII标识,就只匹配[\t\n\r\f\v]
    2、对于8位(byte类型)模式:匹配ASCII中定义的空白字符[\t\n\r\f\v]
\S  匹配任何非Unicode中的空白字符。与\s相反。开启了re.ASCII标识,则相当于匹配[^\t\n\r\f\v]
\w  1、对于Unicode(str类型)模式:匹配任何unicode的单词字符,也包括数字和下划线,如果开启了re.ASCII标识,就只匹配[a-zA-Z0-9]
    2、对于8位byte模式,匹配ASCII中定义的字母数字,即[a-zA-Z0-9]
\W  匹配任何非Unicode的单词字符,其实就是与\w相反,如果开启了re.ASCII标识,则相当于[a-zA-Z0-9]
'''
import re
#\b :匹配一个单词的边界,单词被定义为Unicode的字母数字或下横线字符
z = re.findall(r'\blove\b', 'love.com!love_com!(love)')
#中间那个love没有被找到。因为下横线_被认为是单词,并不符合单词边界的定义。符号是属于单词边界的,例如. ! ( )都是符号。因此只匹配到了前后两个love
print(z)    #['love', 'love']

'''
编译正则表达式
如果我们需要重复地使用某个正则表达式,那么我们可以先将该正则表达式编译成模式对象。
我们使用re.compile() 方法来编译
'''
p = re.compile(r'[A-Z]')
print(type(p))  #<class '_sre.SRE_Pattern'>  p就是一个模式对象
z = p.search('I Love Study')  #传进的是待匹配的字符串
print(z)    #match='I'>
z = p.findall('I Love Study')
print(z)    #['I', 'L', 'S']

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值