字符 | 功能 |
---|---|
| | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配到的字符串 |
(?P<name>) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |
匹配1-100之间数字
# -*- coding: utf-8 -*-
# @Time : 2019/10/4 17:48
# @Author : 币行者
# @Email : xypip@qq.com
# @File : tetst6.py
import re
ret = re.match("[1-9]?\d$","08")
if ret:
print(ret.group())
else:
print("不在0-100之间")
ret = re.match("[1-9]?\d$|100","100")
print(ret.group())
()使用方法
# -*- coding: utf-8 -*-
# @Time : 2019/10/6 22:38
# @Author : 币行者
# @Email : xypip@qq.com
# @File : 正则表达()分组.py
import re
ret = re.match("\w{4,20}@163\.com", "xingzhe@163.com")
print(ret.group())
ret = re.match("\w{4,20}@(163|126|qq)\.com", "xingzhe@126.com")
print(ret.group())
ret = re.match("\w{4,20}@(163|126|qq)\.com", "xingzhe@qq.com")
print(ret.group())
不以4或7结尾的手机号
首位以1开头,中间10位数字任意,末位不是4或7
# -*- coding: utf-8 -*-
# @Time : 2019/10/6 22:53
# @Author : 币行者
# @Email : xypip@qq.com
# @File : 手机号码匹配.py
import re
tels = [
"13062617783",
"123456",
"13844456784"
]
for tel in tels:
ret = re.match("1\d{9}[0-35-68-9]", tel)
if ret:
print(ret.group())
else:
print("%s不是符合条件的手机号" % tel)
正则表达式是一种通用的字符串处理方法,Python引入re模块,可以快速处理匹配我们需要的信息,正则表达式语法众多,高手玩到炉火纯青可以随心所欲且使用高级的匹配方式,对于我们大多数人以及行者本人并非在编程一线行业,因此,写代码纯粹是满足个人需要,简化我们流程提高我们的效率,本来开始使用Python爬虫获取简书专题的所有文章和对应链接,但是,经过爬取实践时发现,lxml只能解析到前10篇文章,将专题的网页下载下来分析发现,只有我们将专题拉到尾部全部加载出来下载才可以获得全部网页源代码,也是出于安全性,防止被简书后台发现,所以使用正则表达进行匹配,服务器就不会获取爬虫信息,几乎任何领域,20%的知识可以解决掉80%的问题,我的平时工作就是教计算机编程,教算法竞赛,所以也利用编程基础完成一些自动化脚本的创建。至于爬虫问题,当我有时间会深入了解一下,破解这个只能够爬取前10篇文章信息的问题。编程的价值,我一直认为,能够应用于我们的生活就是价值。