# \d 数字 \D 非数字
# \w 单词 \W 非单词
# \s 空白字符 \S 非空白字符
# {} 数量词
# * 匹配数量词(匹配0次或者无限次)
# + 匹配数量词(匹配1次或者无限次)
# ? 匹配数量词(匹配1次或者1次)
import re
s = 'abc, acc, adc, aec, afc, ahc'
#匹配数字
r = ('\d',s)
#匹配非数字
r = ('\D',s)
#匹配单词
r = ('\w',s)
#匹配非单词
r = ('\W',s)
#匹配abc adc单词
r = ('a[bd]c',s)
#匹配acc, adc, aec, afc单词
r2 = ('a[c-f]c',s)
#匹配非abc, adc单词
r = ('a[^bd]c',s)
#匹配单词(由大小写字母,数字,下划线组成)
r = ('[A-Za-z0-9_]',s)
a = 'python 111java7823php'
#匹配单词python java 等单词(花括号里面的第一个参数是a-z的次数),花括号里面的是数量词
#分析:python有6个字符,php有3个字符,所以数量词的范围是3-6
r = ('[a-z]{3,6}',a)
r = ('([a-z]{3,6})',a)#后面打印r的时候只打印括号里面的东西
#贪婪模式正则匹配与非贪婪正则匹配
r = ('[a-z]{3,6}',a) #贪婪匹配(最多可以匹配6个字符)
r = ('[a-z]{3,6}?',a) #非贪婪匹配(只匹配3个字符)
c = 'pytho0python1pythonn2'
r = ('python*',c) #n的重复次数为0次或者无限次
r = ('python+',c) #n的重复次数为1次或者无限次
r = ('python?',c) #n的重复次数为1次或者0次