学会正则表达式,爬遍所有网站都不怕!最详细的正则入门教程!
2018-07-05 本文已影响7人
919b0c54458f
百度百科上关于正则表达式的解释:
例:判断是否是手机号码
未采用正则表达式
re模块介绍
常用函数
re.match()函数:扫描整个字符串,返回从起始位置成功的匹配
语法:re.match(pattern, string, flags=0)
pattern 匹配的正则表达式;string 要匹配的字符串;flags 标志位,用于控制正则表达式的匹配方式,常见值如下:(re.I 忽略大小写;re.M 多行匹配)
re.search()函数:扫描整个字符串,并返回第一个成功的匹配(语法同上)
findall()函数:扫描整个字符串,并返回结果列表(语法同上)
匹配单个字符
. 匹配除换行符以外的任意字符
[123abc] []是字符集和,表示匹配方括号中所包含的任意一个字符
[^ Mark] 匹配除了 Mark 这几个字母以外的所有字符,中括号里的 ^ 称为脱字符,表示不匹配集合中的字符
d 匹配数字,效果同 [0-9]
D 匹配非数字字符,效果同 [^0-9]
w 匹配数字、字母和下划线,效果同 [0-9a-zA-Z_]
W 匹配非数字、字母和下划线,效果同 [^0-9a-zA-Z_]
s 匹配任意的空白符(空格、换行、回车、换页、制表),效果同 [ ]
S 匹配任意的非空白符,效果同 [^ ]
代码块
# 对 * 进行转义,进行非贪婪匹配print(re.findall(r"//*.*?/*/", r"/* one */ /* two */ ")) # ['/* one */', '/* two */']
大家可以去写一下关于 QQ 、邮箱、电话、用户名、密码、IP地址、URL的正则表达式来练下手。
是不是很强大,进群:125240963 即可获取数十套PDF哦!