正则表达式\d和[0-9]的区别

本文详细对比了正则表达式中d与[0-9]的区别,解释了d为何能匹配更多类型的数字,包括中文全角数字,并通过Python代码示例验证了这一特性。同时,文章还提供了时间测试结果,比较了两种表达式的运行效率。

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

正则表达式中,\d[0-9]都用于匹配数字
区别在于:\d的匹配范围比[0-9]更广泛
例如:中文输入法输入全角数字,\d能匹配而[0-9]不能

Python代码示例

import re
a = '1234567890'
print(re.findall('[0-9]', a))
print(re.findall('[0-9]', a))
print(re.findall('\d', a))

打印结果

[]
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']

时间测试

[0-9]范围更小,因此速度更快

from re import search
from time import time

a = 'abcde' * 99
t0 = time()
[search('[0-9]', a) for _ in range(999999)]
t1 = time()
[search('\d', a) for _ in range(999999)]
t2 = time()
print('时间测试结果', t1 - t0, t2 - t1)

时间测试结果 3.1126251220703125 5.270697116851807

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值