06Python爬虫---正则表达式04之常用表达式

本文详细介绍了正则表达式中的四大核心函数:re.match()、re.search()、全局匹配函数及re.sub()函数。通过实例展示了这些函数的具体用法,包括模式匹配、全局搜索与替换等内容。

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

常用的正则表达式函数
re.match()函数、re.search()函数、全局匹配函数、re.sub()函数

一、re.match()函数

从源字符串的起始位置匹配一个模式
格式re.match(pattern, string, flag)
第一个参数代表对应的正则表达式,第二个参数代表对应的源字符,第三个参数是可选参数,代表对应的标志位,可以放模式修正符等信息

import re
string = "apythonhellomypythonhispythonourpythonend"
pattern = ".python."
result = re.match(pattern, string)
result1 = re.match(pattern, string).span()
print("结果1:%s" % result)  # 结果1:<_sre.SRE_Match object; span=(0, 8), match='apythonh'>
print(result1)  # (0,8)
二、re.search()函数

扫描整个字符串进行匹配
格式re.search(pattern, string, flag)

import re
string = "hellomypythonhis"
pattern = ".python."
result = re.match(pattern, string)
result1 = re.search(pattern, string)
print("结果1:%s" % result)  # 结果1:None
print("结果2:%s" % result1)  # 结果2:<_sre.SRE_Match object; span=(0, 8), match='ypythonh'>
三、全局匹配函数
将符合模式的全部内容都匹配出来

思路
(1)使用re.compile()对正则表达式进行预编译
(2)编译后使用findall()根据正则表达式从原字符串中将匹配的解决全部找出。

import re
string = "hellomypythonhispythonourpythonend"
pattern = re.compile(".python.")  # 预编译
result = pattern.findall(string)  # 找出符合模式的所有结果
print("全局匹配结果:%s" % result)  # 全局匹配结果:['ypythonh', 'spythono', 'rpythone']

整合

import re
string = "hellomypythonhispythonourpythonend"
pattern = ".python."
result = re.compile(pattern).findall(string)
print("全局匹配结果:%s" % result)  # 全局匹配结果:['ypythonh', 'spythono', 'rpythone']
四、re.sub()函数

根据正则表达式来实现替换某些字符串
re.sub(pattern, rep, string, max)
第一个参数对应的正则表达式,第二个参数为要替换成的字符串,第三个参数为源字符串,第四个参数为可选项,代表最多替换的次数,如果忽略不写,则会将符合模式的结果全部替换。

import re
string = "hellomypythonhispythonourpythonend"
pattern = "python."
result1 = re.sub(pattern, "php", string)  # 全部替换
result2 = re.sub(pattern, "php", string, 2)  # 最多替换2次
print("结果1:%s" % result1)  # 结果1:hellomyphpisphpurphpnd
print("结果2:%s" % result2)  # 结果2:hellomyphpisphpurpythonend
Python 爬虫中,正则表达式是非常常用的技术,可以帮助我们从网页中提取出需要的信息。下面是一些常用正则表达式符号和方法: 1. ".":匹配任意单个字符,除了换行符。 2. "^":匹配字符串的开始位置。 3. "$":匹配字符串的结束位置。 4. "*":匹配前一个字符出现 0 次或多次。 5. "+":匹配前一个字符出现 1 次或多次。 6. "?":匹配前一个字符出现 0 次或 1 次。 7. "{m}":匹配前一个字符出现 m 次。 8. "{m,n}":匹配前一个字符出现 m 到 n 次。 9. "(...)":分组匹配,匹配括号内的表达式。 10. "[...]":匹配括号内的任意一个字符。 11. "[^...]":匹配不在括号内的任意一个字符。 12. "\d":匹配数字,等同于 [0-9]。 13. "\D":匹配非数字,等同于 [^0-9]。 14. "\s":匹配空白字符,包括空格、制表符、换行符等。 15. "\S":匹配非空白字符。 16. "\w":匹配单词字符,包括字母、数字、下划线。 17. "\W":匹配非单词字符。 在 Python 中,使用 re 模块进行正则表达式的匹配。常用的方法包括: 1. re.compile(pattern):将正则表达式编译成一个对象,提高匹配效率。 2. re.search(pattern, string):在字符串中搜索匹配正则表达式的第一个位置。 3. re.findall(pattern, string):在字符串中搜索匹配正则表达式的所有位置,并返回一个列表。 4. re.sub(pattern, repl, string):将字符串中所有匹配正则表达式的字符替换为指定的字符串。 以上是一些常用正则表达式符号和方法,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值