Python入门与进阶(10-5 10-6)

2018-05-08  本文已影响65人  buaishengqi

10-5 数量词
10-6 贪婪与非贪婪

#数量词

# Q1:在一个字符串中,想要匹配所有的字母,怎么操作?
import re 
a = 'python1111java678php'
r = re.findall('[a-z]',a)  # a-z打印所有的字母
print(r)
# 打印结果如图1


# Q2:在一个字符串中,想要匹配所有的完整的单词,怎么操作?
import re 
a = 'python1111java678php'
r = re.findall('[a-z]{3}',a)  # [a-z]{3}表示单词以3个一组出现
print(r)
# 打印结果如图2,结果2中都是3个一组,并不是完整的字母,怎么办?


# Q3:在一个字符串中,想要匹配所有的完整的单词,怎么操作?
import re 
a = 'python1111java678php'
r = re.findall('[a-z]{3,6}',a)  # [a-z]{3,6}表示单词出现的形式,最少以3个字母,最多以6个字母出现。字母乘以数量的形式。
print(r)
# 打印结果如图3,是我们想要的结果


# 贪婪与非贪婪
# 在Python中,默认的是贪婪的匹配方式。看个例子
import re 
a = 'python1111java678php'
r = re.findall('[a-z]{3,6}',a) 
print(r)
# 根据图3的打印结果,当匹配到3个字母的时候,输出也是正确的,只不过Python采用的贪婪的匹配方式,会尽量多的往下匹配



# 来看下非贪婪的匹配
import re 
a = 'python1111java678php'
r = re.findall('[a-z]{3,6}?',a) #[a-z]{3,6}?加这个问号就表示非贪婪的匹配
print(r)
# 打印结果如图4,这种非贪婪的匹配方式,跟{3}的匹配方式相同!
01.jpg 02.jpg 03.jpg 04.jpg
上一篇 下一篇

猜你喜欢

热点阅读