Python中.*和.*?的区别

.*和.*?

表达式 .* 的意思很好理解,就是单个字符匹配任意次,即贪婪匹配。 
表达式 .*? 是满足条件的情况只匹配一次,即懒惰匹配

#-*-coding:utf8-*-
import re
pattern_1 = re.compile(".*([1-9]\\d*|[一两二三四五六七八九十]{1,3})(百|千|)米.*")
pattern_2 = re.compile(".*?([1-9]\\d*|[一两二三四五六七八九十]{1,3})(百|千|)米.*")
string="附近5100米"
all_data_1=pattern_1.findall(string)
all_data_2=pattern_2.findall(string)
for data in all_data_1:
	print(data)
for data in all_data_2:
	print(data)

结果:

('100', '')
('5100', '')

程序员有偿接单和程序指导加QQ:734564390

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值