学习笔记(7):150讲轻松搞定Python网络爬虫-正则表达式-re模块常用函数

立即学习:https://edu.csdn.net/course/play/24756/280712?utm_source=blogtoedu

# 正则表达式的findall,sub,split,compile以及正则注释VERBOSE的用法

import re

# # 1.分组
# # 把你想要的部分添加到()中
# # 结果可以通过group(序号)显示,注意序号不能超过()的数量
# # 序号0,代表全部内容,序号1代表第一个括号内的内容,序号2代表第二个括号内的内容
#
# text = 'apple price is $99,orange price is $88'
# result = re.search('.+(\$\d+).+(\$\d+)',text)
# # 等同于print(result.group(0))
# print(result.group())
# print(result.group(1,2))
# # .groups()表示获取除了.group(0)外的所有分组
# print(result.groups())


# 2. findall:查找所有满足条件的
text = 'apple price is $99,orange price is $88'
# 返回是一个列表
result = re.findall(r'\$\d+', text)
print(result)

# # 3. sub: 根据规则替换其他字符串
# text = 'nihao zhongguo hello world'
# ## 与replace的不同
# # result = text.replace(' ','\n')
# # print(result)
# # .sub(需要被替换的字符串,需要替换成的字符串,原字符串)
# result = re.sub(r' ','\n',text)
# print(result)
# text = 'nihao zhongguo,hello world'
# # 可以实现多个字符的替换,下边就是把空格或者逗号都提华为了\n换行
# result = re.sub(r' |,','\n',text)
# print(result)
html = """
<div class="job-detail">
    <p>1. 3年以上相关开发经验 ,全日制统招本科以上学历</p>
    <p>2. 精通一门或多门开发语言(Python,C,Java等),其中至少有一门有3年以上使用经验</p>
    <p>3. 熟练使用ES/mysql/mongodb/redis等数据库;</p>
    <p>4. 熟练使用django、tornado等web框架,具备独立开发 Python/Java 后端开发经验;</p>
    <p>5. 熟悉 Linux / Unix 操作系统&nbsp;</p>
    <p>6. 熟悉 TCP/IP,http等网络协议</p>
    <p>福利:</p>
    <p>1、入职购买六险一金(一档医疗+公司全额购买商业险)+开门红+全额年终奖(1年13薪,一般会比一个月高)</p>
    <p>2、入职满一年有2次调薪调级机会</p>
    <p>3、项目稳定、团队稳定性高,团队氛围非常好(汇合员工占招行总员工比例接近50%);</p>
    <p>4、有机会转为招商银行内部员工;</p>
    <p>5、团队每月有自己的活动经费,法定节假日放假安排;</p>
    <p>6、办公环境优良,加班有加班费(全额工资为计算基数,加班不超过晚上10点,平日加班为时薪1.5倍,周末加班为日薪2倍,周末加班也可优先选择调休,管理人性化)。</p>
</div>
"""
# 去掉标签,输出文本
# 注意不能用贪婪模式,贪婪模式会从第一个<匹配到最后一个>,得不到想要的内容
# result = re.sub(r'<.+>','',html)
# print(result)
# print('-'*30)
result = re.sub(r'<.+?>', '', html)
print(result)

# split: 根据规则分割字符串
text = 'nihao zhongguo hello world'
# 输出为列表
result = re.split(r' ', text)
print(result)
text = 'nihao zhongguo,hello world'
# 支持多字符分割
result = re.split(r' |,', text)
print(result)

# compile: 编译正则表达式
# 使用编译好的结果
text = 'apple price is $34.567'
# 加?非贪婪模式,不一定出现小数点
r = re.compile(r'\d+\.?\d+')
# 引入提前编译好的正则,系统性能会有所提升
result = re.search(r, text)
print(result.group())

# 正则表达式的注释
# 在正则最后增加re.VERBOSE,注释为多行字符串
r = re.compile(r'''
\d+ # 整数部分
\.? # 小数点,也可能没有小数点
\d+ # 小数部分
''', re.VERBOSE)

# 也可以写在search,match等的后边
result = re.search(r'''
\d+ # 整数部分
\.? # 小数点,也可能没有小数点
\d+ # 小数部分
''', text, re.VERBOSE)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值