.*和.*?
表达式 .* 的意思很好理解,就是单个字符匹配任意次,即贪婪匹配。
表达式 .*? 是满足条件的情况只匹配一次,即懒惰匹配
#-*-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