写一些数据结构时,发现有些地方光靠代码逻辑写有点费劲,还是回来复习一下正则表达式,写文章加深一下理解
学习参考:
报名参加了 极客时间(正则入门),以此做一下学习笔记
应用场景示例:
一、正则功能
校验数据有效性
手机号,邮箱等限定格式
查找符合要求的文本内容
对文本切割替换等操作
二、元字符
元字符指正则表达式中特殊用途的字符
分类
1. 特殊单字符
在匹配数字的时候,可以写成 \d{11} 匹配 11 位数字。其他也相同
2. 空白符
空白符主要表示 换行 \n ,制表符 \t 等
其中,在正则中,空格用英文的空格表示
3. 量词
量词用于衡量字符的出现次数
这个地方教材说的有点模糊,但经过我尝试
\d{10} :只匹配出现了十位数字的数字组合
这个数字代表了匹配的对应数字位数
还有比如英文单词,颜色 color 与 colour ,若我们想都匹配成功
可以设定为 colou?r
?表示前一个字符可有可无
4. 范围
假如我们想匹配手机号,首先是 11 位数字,但还有一些不是手机号的 11 位数字如何过滤呢?
就可以通过设定范围来找到更合适的内容
第一个 | 表示 或,符合两边的一个即可
第二个 【aei】,这样就表示匹配 a e i 这三个元素
第二个表示一个数字或字母范围,可以加 ^ 表示 非
还有就是网站的话 ,有 https 或者 http ,就可以用 https? 来把两个都匹配了
5. 总结
题目:
更严谨的匹配手机号
1. 第一位固定为 1
2. 第二位可能为 3 ,4 ,5 ,6 ,7 ,8 ,9
3. 第三位到 11 位可能为 0-9
答案:
r"1[3-9]\d{9}"