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







网友评论