python五十六课——正则表达式(常用函数之match)
函数:match(regex,string,[flags=0])
参数:
regex:就是正则表达式(定义了一套验证规则)
string:需要被验证的字符串数据
flags:模式/标志位,默认情况下(不定义) --> 不开启任何的模式
功能:
从头开始尝试匹配字符串数据(注意:如果开头就不匹配直接返回None值),
如果匹配成功,那么就会返回一个match对象;
如果匹配不成功,那么就会返回None值
flags的取值:
re.I:忽然大小写
match对象有5个常用的函数:
group():返回匹配成功的数据(原串中的某子串数据)
start():返回匹配成功的数据的起始索引
end():返回匹配成功的数据的结束索引
span():返回一个元祖对象,有两个元素组成;
第一个元素记录了匹配成功的起始索引
第二个元素记录了匹配成功的结束索引
groups():返回所有子组的信息,以元祖的形式返回;如果没有分组,返回空元祖对象
【注意事项】:
1).正则表达式返回的索引值需要满足含头不含尾的特点
2).正则表达式验证的数据内容严格区分大小写
3).我们之后在定义正则规则的时候,在引号前面+一个r,无脑操作...
import re
matchobj=re.match(r'www','www.baidu.com')
print(matchobj,type(matchobj)) print(re.match(r'www','www.sina.com'))
print(re.match(r'www','www.sina.com').group())
print(re.match(r'www','www.sina.com').start())
print(re.match(r'www','www.sina.com').end())
print(re.match(r'www','www.sina.com').span())
print(re.match(r'www','www.sina.com').groups())
print(re.match(r'WWW','www.sina.com'))
print(re.match(r'WWW','www.sina.com',flags=re.I)) '''
使用第二种方式实现正则对数据的验证:
compile(regex,[flags=0]):返回一个Pattern对象(认为:它内部已经封装了一套regex和flags)
可以再通过Pattern对象继续调用match函数(此时只需要传递一个参数:string即可)
注意:
以上函数中涉及的参数:regex、flags、string和re.match中的参数一样理解
'''
pat=re.compile(r'www',flags=re.I)
print(pat,type(pat))
print(pat.match('wWw.baidu.com'))
返回目录
python五十六课——正则表达式(常用函数之match)的更多相关文章
- python五十六课——正则表达式(常用函数之search())
函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个 ...
- python五十六课——正则表达式(常用函数之findall)
4).函数:findall(regex,string,[flags=0]): 参数: 和match.search一样理解 功能: 将所有匹配成功的子数据(子串),以列表的形式返回: 如果一个都没有匹配 ...
- python五十六课——正则表达式(常用函数之compile())
2).compile(regex,[flags=0]):返回一个Pattern对象(认为:它内部已经封装了一套regex和flags) 可以再通过Pattern对象继续调用match函数(此时只需要传 ...
- python五十九课——正则表达式的拓展内容
演示正则表达式的拓展内容:函数:finditer(regex,string,[flags=0]):参数:和match.search.findall一样理解功能:将所有匹配的数据封装为一个一个的matc ...
- python五十八课——正则表达式(替换)
替换:sub(regex,repl,string,count,[flags=0]): 替换数据,返回字符串(已经被替换完成后的内容)subn(regex,repl,string,count,[flag ...
- python五十八课——正则表达式(分组)
演示正则中的替换和切割操作:在这之前我们先学习一个分组的概念: 分组:在正则中定义(...)就可以进行分组,理解为得到了一个子组好处:1).如果正则中的逻辑比较复杂,使用分组就可以优化代码的阅读性(更 ...
- python五十八课——正则表达式(切割)
切割:split(regex,string):返回一个列表对象 import re str1='i love shenzhen so much' regex=r' +?' lt=re.split(re ...
- python第十六课——外部函数and内部函数
1.外部函数&内部函数 内部函数: 定义在某个函数的内部,就是内部函数: [注意事项]: 1).内部函数可以随意使用它外部函数中的内容 2).外部函数不能使用内部函数中的内容 3).内部函数不 ...
- python第二十六课——装饰器
装饰器是闭包的一种使用场景: python中的装饰器在定义上需要传入一个函数对象, 在此函数执行之前或者之后都可以追加其它的操作, 这样做的好处是,在不改变源码(原本业务逻辑的)同时,进行功能的扩展: ...
随机推荐
- mac使用brew安装mysql
1.安装mysql #brew install mysql 报错 Error: The following directories are not writable by your user: /us ...
- Hibernate学习(三)———— 一对多映射关系
序言 前面两节讲了hibernate的两个配置文件和hello world!.还有hibernate的一级缓存和三种状态,基本上hibernate就懂一点了,从这章起开始一个很重要的知识点,hiber ...
- ASP.NET MVC5 + EF6 + LayUI实战教程,通用后台管理系统框架(3)
前言 本节将我们自己的CSS样式替换系统自带的 开始搭建 将脚本文件夹删掉,将内容文件夹里的内容删掉,将我们自己的CSS样式文件,全部复制到内容里边 新建家庭控制器 给家庭控制器添加索引视图 指数代码 ...
- Spring之Bean的注入
Bean的配置中介绍的是Bean声明问题,在哪声明怎么声明的问题.Bean的注入是怎么实例化,怎么注入的问题.Bean注入的方式有两种,一种是在XML中配置,另一种则是使用注解的方式注入. 一.XML ...
- RockChip RK3326 系统编译问题总结
1. 序言 本文主要记录了RK3326平台系统编译过程中遇到的各种问题,并加以解决! 环境: 宿主Linux:Ubuntu 16.04 目标机:RK3326 (64bit) Toolchain:gcc ...
- ssh采用expect实现自动输入密码登录、拷贝
1. 引言 最近做了一个项目,需要频繁与另一台主机进行文件的传输:中间想到了很多方式:FTP.samba.curl等,但是还是感觉scp最好用. SCP使用教程可参阅:http://www.jb51. ...
- VirtualBox centos7扩容
有时候扩容还真不如重新建立一个大硬盘的系统,但是如果你安装了好多东西的话,那还是来扩容一下吧. 查看磁盘格式 在virtualBox中右键点击虚拟机->设置->存储,如 ...
- c# 正则格式化文本防止SQL注入
/// <summary> /// 格式化文本(防止SQL注入) /// </summary> /// <param name="str">&l ...
- SQL Server 基本INSERT语句
1.基本INSERT语句,单行插入 如果没有列出列,则使一一对应. 2.多行插入 3.INSERT INTO ... SELECT 语句 要插入的语句是从其他表中查询出来的. 注意:数据类型得相同或者 ...
- MAC MYSQ忘记密码重置方法
网友的方法,记个笔记请勿转载. step1: 关闭mysql服务: 苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server) ...