python学习笔记——提取网页中的信息正则表达式re

被用来检索\替换那些符合某个模式(规则)的文本,对于文本过滤或规则匹配,最强大的就是正则表达式,是python爬虫里必不可少的神兵利器。

1 正则表达式re基本规则

[0-9] 任意一个数字,等价\d

[a-z] 任意一个小写字母

[A-Z]任意一个大写字母

[^0-9] 匹配非数字,等价\D

\w 等价[a-z0-9_],字母数字下划线

\W 等价对\w取非

. 任意字符

[] 匹配内部任意字符或子表达式

[^] 对字符集合取非

* 匹配前面的字符或者子表达式0次或多次

+ 匹配前一个字符至少1次

? 匹配前一个字符0次或1次

^ 匹配字符串开头

$ 匹配字符串结束

2 python的re模块

几个重要的方法:

match: 匹配一次从开头;

search: 匹配一次,从某位置;

findall: 匹配所有;

split: 分隔;

sub: 替换;

3 正则表达式的两种模式

3.1 贪婪模式:(.*)

import re
str = "hello_python3_world"

re_obj = re.compile(".*_")

data = re_obj.findall(str)
print(data)

# 贪婪模式,一直匹配到最后一个下划线_

 

3.2 懒惰模式:(.*?)

import re
str = "hello_python3_world"

re_obj1 = re.compile(".?_") #['o_', '3_']
re_obj2 = re.compile(".*?_") #['hello_', 'python3_']

data1 = re_obj1.findall(str)
data2 = re_obj2.findall(str)
print(data1)
print(data2)

# 懒惰模式,匹配到第一个下划线_时即停止继续匹配

4 相关软件

RegexTester.exe

5 正则 BS lxml的比较

6 示例

5.1 示例一

用正则表达式实现下面的效果:

把 i=d%0A&from=AUTO&to=AUTO&smartresult=dict

转换成下面的形式:

i:d%0A

from:AUTO

to:AUTO

smartresult:dict

import re
str = "i=d%0A&from=AUTO&to=AUTO&smartresult=dict"

re_obj = re.compile("&")

data = re_obj.split(str) #data数据存储['i=d%0A', 'from=AUTO', 'to=AUTO', 'smartresult=dict']

m = len(data)
for i in range(m):
    print(data[i])

 

正则表达式30分钟入门教程

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值