python爬虫——正则表达式常用函数及匹配规则

正则表达式测试工具:http://tool.oschina.net/regex/
https://www.w3cschool.cn/tools/index?name=reg
在这里插入图片描述

常用匹配规则

模式描述
+匹配1个或多个表达式
*匹配0个或多个表达式
^匹配一行字符串开头
$匹配一行字符串结尾
.匹配任意字符
\d匹配任意数字
\s匹配任意空白符号
\w匹配字母、数字及下划线
{n}精确匹配n个前面的表达式

常用匹配方法

方法描述
match()从字符串开头开始,传入要匹配的正则表达式,检测是否有匹配字符串
search()依次扫描字符串,找到第一个符合的字符串
findall()搜索整个字符串,返回匹配的使用内容
sub()去除或修改一些字符串,让匹配更简单
compile()将正则字符串编译成表达式对象,方便复用
match() 方法
content = 'Hello 123 4567 World_This is a Regex Demo'
# 第一个参数为正则表达式,第二个为要匹配的字符串
result = re.match('^Hello\s(\d+)\s\d{4}\s\w{10}', content)

输出匹配的内容 ——group()
输出匹配的范围——span()

print(result)
print(result.group())
print(result.group(1))  # 子字符串匹配
print(result.span())

结果:

<re.Match object; span=(0, 25), match=‘Hello 123 4567 World_This’>
Hello 123 4567 World_This
123
(0, 25)

通用匹配

.* 表示匹配任意字符并无限次匹配

result1 = re.match('^Hello.*Demo$', content)
print(result1.group())

结果:

Hello 123 4567 World_This is a Regex Demo

贪婪匹配非贪婪匹配
.*.*?
尽可能匹配多的字符尽可能匹配少的字符
字符串末尾字符串中

修饰符

修饰符描述
re.I匹配不区分大小写
re.S使.匹配包括换行符在内的所有字符

使用

result = re.match(’^Hello\s(\d+)\s\d{4}\s\w{10}’, content, re.S)

转义匹配

在前面加\, 如\.

sub() 方法
import re

content = '5423dfjDJF:LJ'
# 第一个参数传入匹配值,第二个为替换成的字符串,第三个为原字符串
result = re.sub('\d+', '', content)
print(result)

结果:

dfjDJF:LJ

compile() 方法
import re

content1 = '2016-12-15 12:00'
content2 = '2019-4-23 12:00'
pattern = re.compile('\d{2}:\d{2}')
result1 = re.sub(pattern, '', content1)
result2 = re.sub(pattern, '', content2)
print(result1, result2)

结果:

2016-12-15 2019-4-23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值