关于正则表达式
正则表达式是用来简洁表达一组字符串的表达式,其优势在于简洁
re.compile(regex)——编译:将符合正则表达式语法的字符串转化成正则表达式特征
语法部分
为了加深理解,可以在python123上找到一些相关的练习:
https://python123.io/index/tutorials/regex_intro
对于比较混乱、格式不一的数据,我们需要找到一个统一的正则表达式来表示
上面这一块并不是特别明白
邮箱验证正则表达式:
^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$
密码强度验证(最少八个字符,至少一个大写字母,一个小写字母和一个数字):
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^\n]{8,}$
事实上,并不需要完全搞懂,对于我这种小白来说能按照需求来找到正则表达式就可以了
有一些网站提供了常用的正则表达式和测试环境,例如
regexr.com 一个非常棒的在线环境
regexlib.com 收录了很多严谨的正则表达式,不过也相当复杂
重点——爬虫中正则表达式的常规使用
提取所有 HTML 标签:
<("[^"]*"|'[^']*'|[^'">])*>
清洗所有 HTML 标签:
<("[^"]*"|'[^']*'|[^'">])*>
提取所有URL:
(https?|ftp|file)(:/)?/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
提取所有 JPG 图片的 URL:
(https?|ftp|file)(:/)?/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|].jpg
提取所有中文和中文标点:
(https?|ftp|file)(:/)?/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|].jpg
下面这一段话可以说感同身受了:
正则表达式是伟大的发明
用正则表达式完成任务是很有成就感的事
你没有必要记忆绝大多数的正则表达式语法
如果你觉得正则表达式很难阅读,那么所有人和你一样
正则表达式没那么常用,但它总在不经意间让你的生活更轻松一些
重复造轮子不可取,但是再造轮子可以锻炼自己的能力
无论如何,我们总是需要站在巨人的肩膀上