我是张晨,一转眼,我在新课已经学习了很长一段时间。回顾这几个月的时间,我收获了很多知识。这里是我的一点学习笔记。
一、re.I
语法: re.IGNORECASE 或简写为 re.I
含义: 进行忽略大小写匹配。
re.findall(r'TM','tm')
[]
re.findall(r'TM','tm',re.I)
['tm']
在默认匹配模式下小写字母tm无法匹配大写字母TM的,而在忽略大小写模式下就可以匹配了。
二、re.A
语法: re.ASCII 或简写为 re.A
作用: 顾名思义,ASCII表示ASCII码的意思,让 \w, \W, \b, \B, \d, \D, \s 和 \S 只匹配ASCII,而不是Unicode。
re.findall(r'\w+','tm真帅')
['tm真帅']#w匹配所有字符
re.findall(r'\w+','tm真帅', re.A)#w匹配字母和数字
['tm']
在默认匹配模式下’\w+'匹配到了所有字符串,而在ASCII模式下,只匹配到了a、b、c(也就是指匹配ASCII编码支持的字符)。注意:这只对字符串匹配模式有效,对字节匹配模式无效。
三、re.S
语法: re.DOTALL 或简写为 re.S
作用: DOT表示.,ALL表示所有,连起来就是.匹配所有,包括换行符\n。默认模式下.是不能匹配行符\n的。
print('小伍哥\n真帅')#文本中间包含换行符,打印的时候会换行
小伍哥
真帅
re.findall(r'.*','哥\n真帅')
['哥', '', '真帅', '']
re.findall(r'.*','哥\n真帅',re.S )
['哥\n真帅', '']
在默认匹配模式下.并没有匹配换行符\n,而是将字符串分开匹配