Python 正则表达式(匹配开头结尾)
时间:2022-06-22
本文章向大家介绍Python 正则表达式(匹配开头结尾),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题场景
有时候如果只写了匹配的规则,但是没有定义匹配的开头以及结尾,可能匹配出来的结果就并不一定是自己想要的。
# 例如:如果只是单纯写了前面的匹配规则,就算输入的值后面多了一个 m,也是不会报错的。
# 这种结果,在设置邮箱的时候是不允许的。
In [10]: re.match('w{4,20}@163.com','laowang@163.comm').group()
Out[10]: 'laowang@163.com'
In [11]:
# 其实只要限制结尾部分的字符就可以做到这点,在匹配规则的结尾位置增加一个 $ 符号。
# 那么下面就报错了,这就是想要结果,说明邮箱地址填写错误了。
In [11]: re.match('w{4,20}@163.com$','laowang@163.comm').group()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-3035ed6b464f> in <module>
----> 1 re.match('w{4,20}@163.com$','laowang@163.comm').group()
AttributeError: 'NoneType' object has no attribute 'group'
In [12]:
匹配开头结尾
字符 |
功能 |
---|---|
^ |
匹配字符串开头 |
$ |
匹配字符串结尾 |
好了,上面使用$
符号解决了这个结尾的问题,那么开头是否也有这样的问题呢?
# 在开头的位置添加一个 w 无法匹配的 感叹号 !,发现就无法匹配
In [14]: re.match('w{4,20}@163.com','!laowang@163.comm').group()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-14-55d26fef815c> in <module>
----> 1 re.match('w{4,20}@163.com','!laowang@163.comm').group()
AttributeError: 'NoneType' object has no attribute 'group'
In [15]:
其实python的match默认是自带了 ^
作为开头匹配的。
- MySQL 5.7安装部署总结(r10笔记第77天)
- Go语言中Socket通信TCP服务端
- MySQL和Oracle的添加字段的处理差别 (r10笔记第73天)
- MySQL修改数据类型的问题总结(r10笔记第74天)
- 深究|Elasticsearch单字段支持的最大字符数?
- Go语言中Socket通信之Tcp客户端
- Oracle 12c PDB迁移及ORA-00600错误分析和解决(r10笔记第72天)
- 【Go 语言社区】epoll详解
- Oracle 12c数据库升级实战(r10笔记第70天)
- Oracle 12c升级检查问题分析(r10笔记第69天)
- 转--使用Revel(go)开发网站
- GoldenGate数据迁移的问题总结(二)(r10笔记第85天)
- Elasticsearch究竟要设置多少分片数?
- 设计模式(1)-使用简单工厂优化代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 读取SAP CRM One Order应用日志的优化方式
- 悟空活动中台 - 基于 WebP 的图片高性能加载方案
- DES ECB加解密的Java实现
- win10 uwp 不显示 SplashScreen 欢迎界面的方法
- WPF 在 XAML 写 C# 代码
- 解析 HashMap源码值概括
- 解析 HashMap 源码之基本操作
- Docker手册
- 小知识:TFA收集日志报错空间不足
- Java SPI 居然这么多知名框架在用
- Ceph 入门到实战之 RBD 块存储接口
- 聊聊 Python 面试最常被问到的几种设计模式(下)
- 带你用 Python 实现自动化群控(入门篇)
- 实战篇 | 基于freeRTOS的多任务事件传输demo(附代码)
- 在kali linux中你应该知道的信息收集姿势(一)