Python中re模块:匹配开头/结尾(^/$)
作者:hello-alien 发布时间:2021-08-31 02:29:13
标签:Python,匹配,开头,结尾
匹配开头结尾
字符 | 功能 |
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
示例1:$
需求:匹配163.com的邮箱地址
email_list = [ " xiaoWang@163.com " , " xiaoWang@163.comh eihei" , ". com.xiaowang@qq.com " ]
for email in email_list:
ret = re.match("[\w]{4,20}@163\.com$", email) \.代表只是一个点 $代表以xxx结尾的字符串
if ret:
print("%s ---是符合规定的邮件地址” % email)
else:
print("%s ---不符合要求" % email)
运行结果:
xiaoWang@163.com # ---是符合规定的邮件地址
xiaoWang@163.comheihei # ---不符合要求 # 如果没有$,这个字符串会匹配出来
.com.xiaowang@qq.com # ---不符合要求
匹配分组
字符 | 功能 |
| | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配到的字符串 |
(?P<name>) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |
示例1:|
需求:匹配出0-100之间的数字
#coding=utf-8
import re
ret = re.match("[1-9]?\d","8”) # ?匹配前面的字符出现1次或者0次 类似78也可以匹配
print(ret.group())
# 结果:8
# 可能匹配不成功时?
import re
ret = re.match("[1-9]?\d$","08")
if ret:
print(ret.group())
else:
print("不在0-100之间”)
# 结果:不在0-100之间
# 添加|
import re
ret = re.match("[1-9]?\d$|100","78")
print(ret.group())
# 结果: 78
ret = re.match("[1-9]?\d$|100","100")
print(ret.group())
# 结果: 100
示例2:( )
需求:匹配出163、126、qq邮箱
#coding=utf-8
import re
ret = re.match("\w{4,20}@163\.com", "test@163.com”)
print(ret.group())
# 结果: test@163.com
ret = re.match("\w{4,20}@(163|126|qq)\.com", "test@gmail.com")
if ret:
print(ret.group())
else:
print("不是163、126、qq邮箱")
# 结果: 不是163、126、qq邮箱
需求:不是以4、7结尾的手机号码(11位)
import re
tels = ["13100001234", "18912344321", "10086", "18800007777"]
for tel in tels:
ret = re.match("1\d{9}[0-3,5-6,8-9]", tel)
if ret:
print(ret.group())
else:
print("%s 不是想要的手机号" % tel)
结果如下:
13100001234 不是想要的手机号
18912344321
10086 不是想要的手机号
18800007777 不是想要的手机号
示例三:分组匹配
需求:提取区号和电话号码
import re
ret = re.match("([^-]*)-(\d+)", "010-12345678")
print(ret.group())
print(ret.group(1))
print(ret.group(2))
结果如下:
010-12345678
010
12345678
^在[ ]里面代表非的含义:
例如:
[^-]* *代表前所有字符0个或者多个,非-的字符串
[^abc] 代表非a、且非b 、且非c的字符
来源:https://hello-alien.blog.csdn.net/article/details/80602000
0
投稿
猜你喜欢
- 前言做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动、点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文
- imadjust简介imadjust是一个计算机函数,该函数用于调节灰度图像的亮度或彩色图像的颜色矩阵。在matlab的命令窗口中键入: d
- 使用jpype调用Jar包中的实现方法安装pip install jpype1(注意要加后边这个1)使用基本流程如下:使用jpype开启jv
- 1、安装mysql有InnoDB的插件扩展 ./configure --prefix=/usr/local/mysql --with-plu
- Fiddler的手机抓包过程1、启动Fiddler打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler
- 本文介绍了手把手教你如何安装Pycharm,分享给大家,具体如下:1、首先去Pycharm官网,或者直接输入网址:http://www.je
- 本文实例讲述了Thinkphp5.0 框架的请求方式与响应方式。分享给大家供大家参考,具体如下:Thinkphp5.0 的请求方式方法一(使
- 本文实例讲述了MySQL自定义函数用法。分享给大家供大家参考,具体如下:先来一个简单的,创建一个函数将'2009-06-23 00:
- 保存文件名太长OSError: [Errno 36] File name too lon问题描述安装pip install python-d
- 1、PHP加密解密PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加
- 九宫格是一种比较古老的设计,它最基本的表现其实就像是一个三行三列的表格。其实它最初是在window的c/s结构中用得比较多,比如我们经常看到
- 区块链实战字节字段说明4版本区块版本号,表示本区块遵守的验证规则32父区块头哈希值前一区块的Merkle树根的哈希值,同样采取SHA256计
- jinja2简介特征沙箱中执行强大的 HTML 自动转义系统保护系统免受 XSS模板继承及时编译最优的 python 代码可选提前编译模板的
- $forceUpdate()的使用在Vue官方文档中指出,$forceUpdate具有强制刷新的作用。那在vue框架中,如果data中有一个
- 前言使用axios可以统一做请求响应拦截,例如请求响应时我们拦截响应信息,判断状态码,从而弹出报错信息。请求超时的时候断开请求,还可以很方便
- 调整形状 调整形状 reshape, resize, flatten
- 进程和线程的区别进程是对运行时程序的封装,是系统资源调度和分配的基本单位线程是进程的子任务,cpu调度和分配的基本单位,实现进程内并发。一个
- 在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对
- 今天不小心又点了收藏夹里Google的新首页风格的地址,赫然发现又变了!从这个页面上线以来,偶尔会去看看,短短一年的时间,已经变换了至少三次
- 在Vue中解决跨域问题有多种方法。以下是几种常见的方法:1. 代理服务器:在开发环境中,可以配置一个代理服务器来转发 API 请求,绕过浏览