python正则一篇搞掂( 三 )

r = re.findall("[z|f]ood", s1)# 匹配"zood"或"food"print(r) 运行结果:
 ['zood', 'food']2.8 分组元字符 ()将括号之间的表达式定义为组(group) , 并且将匹配这个子表达式的字符返回
s1 = "znzoodnfood"r = re.findall("[z|f]o*", s1)# 不加分组 , 拿到的引号内正则表达式匹配到的字符print(r)运行结果:
 ['z', 'zoo', 'foo']r = re.findall("[z|f](o*)", s1)# 加上分组 , 返回的将是引号内正则表达式匹配到的字符中()中的内容 。print(r)# ['', 'oo', 'oo']运行结果:
 ['', 'oo', 'oo']2.9转义元字符 用来匹配元字符本身时的转义 , 和特定字符组成字符串 , 见预定义字符组
s = '12345@qq.com'r = re.findall('.', s)print(r)运行结果:
 ['.']2.10 非贪婪模式非贪婪模式在默认情况下 , 元字符 *,+ 和 {n,m} 会尽可能多的匹配前面的子表达式 , 这叫贪婪模式 。
 s = "abcadcaec"r = re.findall(r"ab.*c", s)# 贪婪模式 , 尽可能多的匹配字符(.*或者.+)print(r) ['abcadcaec']在重复元字符后面加上一个?号就表示非贪婪 , 尽可能少的匹配
 r = re.findall(r"ab.+?c", s)# 非贪婪模式 , 尽可能少的匹配字符print(r) ['abcadc'] r = re.findall(r"ab.*?c", s)# 非贪婪模式 , 尽可能少的匹配字符print(r) ['abc'] s = "<a href=https://www.isolves.com/it/cxkf/yy/Python/2023-09-14/' asdf'>1360942725"a = re.findall('d', s)print(a) ['1', '3', '6', '0', '9', '4', '2', '7', '2', '5'] a = re.findall('D', s)print(a)['<', 'a', ' ', 'h', 'r', 'e', 'f', '=', "'", ' ', 'a', 's', 'd', 'f', "'", '>', '<', '/', 'a', '>'] s = 'fdfa**68687+ 我怕n fdgtf_dn'a = re.findall('s', s)print(a)[' ', ' ', 't', 'n'] a = re.findall("w", s)print(a)['f', 'd', 'f', 'a', '6', '8', '6', '8', '7', '我', '怕', 'n', 'f', 'd', 'g', 'f', '_', 'd'] 3. 预定义字符组元字符  与某些字符组合在一起表示特定的匹配含义
3.1 d匹配单个数字 , 等价于[0-9]
s = "<a href=https://www.isolves.com/it/cxkf/yy/Python/2023-09-14/' asdf'>1360942725"a = re.findall('d', s)print(a)
运行结果:
['1', '3', '6', '0', '9', '4', '2', '7', '2', '5']a = re.findall('d+', s)print(a)运行结果:
['1360942725']3.2 D匹配任意单个非数字字符 , 等价于[^0-9]
a = re.findall('D', s)print(a) 结果:
['<', 'a', ' ', 'h', 'r', 'e', 'f', '=', "'", ' ', 'a', 's', 'd', 'f', "'", '>', '<', '/', 'a', '>'] 3.3 s匹配任意单个空白符 , 包括空格 , 制表符(tab) , 换行符等
s = 'fdfa**68687+ 我怕n fdgtf_dn'a = re.findall('s', s)print(a)运行结果:
[' ', ' ', 't', 'n']


推荐阅读