# ### re.findall 找到所有与正则表达式相匹配的字符串
语法:
- lst = re.findall(正则表达式, 字符串)
- # (1) 预定义字符集
- # \d 匹配数字
- # \D 匹配非数字
- # \w 匹配字母或数字或下划线 (正则函数中, 支持中文的匹配)
- # \W 匹配非字母或数字或下划线
- # \s 匹配任意的空白符, 也就是 \n \t \r " "
- # \S 匹配任意非空白符
- # \n 匹配一个换行符 [最好在正则表达式的前面加上 r, 让转义字符失效, 原型化匹配]
- # \t 匹配一个制表符
- # (2) 字符组 从小组中默认选一个, 比如 [XYZ] 就代表从 X Y Z 中选择一个
- print( re.findall("[123]","451627")) #匹配结果 [1 , 2]
- print(re.findall('a[abc]b','aab abb acb adb')) # aab abb acb
[0-9] 代表从 0 到 9 选择一个数, 相当于 \ d 匹配数字
[a-z]26 个小写字母 a-z
A-G 26 个大写字母 A-Z
print(re.findall('a[0-9a-zA-Z]b','a-b aab aAb aWb aqba1b')) # aab aAb aWb aqb a1b
[0-z] 是按照 ASCII 编码的序号进行排序的, 0-z 之间包含了一些特殊字符, 不属于字母或数字
不推荐使用
- print(re.findall('a[0-9][*#/]b','a1/b a2b a29b a56b a456b')) # a1/b
- # ^ 出现在字符组中, 代表除了 , 除了 +-*/ 这个符号 都要
- # 匹配特殊符号 利用 \ 让原来有意义的字符失效, 通过转义来实现匹配
- # 匹配 \, 用 \\ 去匹配
来源: http://www.bubuko.com/infodetail-3279979.html