函数: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)的更多相关文章

  1. python五十六课——正则表达式(常用函数之search())

    函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个 ...

  2. python五十六课——正则表达式(常用函数之findall)

    4).函数:findall(regex,string,[flags=0]): 参数: 和match.search一样理解 功能: 将所有匹配成功的子数据(子串),以列表的形式返回: 如果一个都没有匹配 ...

  3. python五十六课——正则表达式(常用函数之compile())

    2).compile(regex,[flags=0]):返回一个Pattern对象(认为:它内部已经封装了一套regex和flags) 可以再通过Pattern对象继续调用match函数(此时只需要传 ...

  4. python五十九课——正则表达式的拓展内容

    演示正则表达式的拓展内容:函数:finditer(regex,string,[flags=0]):参数:和match.search.findall一样理解功能:将所有匹配的数据封装为一个一个的matc ...

  5. python五十八课——正则表达式(替换)

    替换:sub(regex,repl,string,count,[flags=0]): 替换数据,返回字符串(已经被替换完成后的内容)subn(regex,repl,string,count,[flag ...

  6. python五十八课——正则表达式(分组)

    演示正则中的替换和切割操作:在这之前我们先学习一个分组的概念: 分组:在正则中定义(...)就可以进行分组,理解为得到了一个子组好处:1).如果正则中的逻辑比较复杂,使用分组就可以优化代码的阅读性(更 ...

  7. python五十八课——正则表达式(切割)

    切割:split(regex,string):返回一个列表对象 import re str1='i love shenzhen so much' regex=r' +?' lt=re.split(re ...

  8. python第十六课——外部函数and内部函数

    1.外部函数&内部函数 内部函数: 定义在某个函数的内部,就是内部函数: [注意事项]: 1).内部函数可以随意使用它外部函数中的内容 2).外部函数不能使用内部函数中的内容 3).内部函数不 ...

  9. python第二十六课——装饰器

    装饰器是闭包的一种使用场景: python中的装饰器在定义上需要传入一个函数对象, 在此函数执行之前或者之后都可以追加其它的操作, 这样做的好处是,在不改变源码(原本业务逻辑的)同时,进行功能的扩展: ...

随机推荐

  1. redhat 下搭建网站

    1.修改yum源 把iso重新挂载到/media路径下,media是个只读的文件 vi  /etc/yum.repos.d/rhel-source.repo            //编辑yum源文件 ...

  2. 【ASP.NET MVC系列】浅谈ASP.NET 程序发布过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  3. 跨站请求伪造CSRF(Cross-site request forgery)

    CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站 ...

  4. angularjs学习第八天笔记(指令作用域研究)

    您好,在前两天对指令的简单了解和系统指令学习后 今天主要研究其指针作用域的相关事情 每一个指令在创建时,其实就构成了自己的一个小的模块单元. 其对于的模块单元都有着其对于的作用域,其中作用域一般有两种 ...

  5. JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)

    系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...

  6. 搭建Hbase完全分布式集群

    配置HBASE: 因为Hbase要依赖zookeeper集群和Hadoop集群,所以在配置hbase之前先确保已经配置zookeeper集群和Hadoop集群,这里不再详解zookeeper和hado ...

  7. Apache:详解QSA,PT,L,E参数的作用

    [QSA] 当被替换的URI包含有query string的时候,apache的默认行为是,丢弃原有的query string 并直接使用新产生的query string,如果加上了[QSA]选项,那 ...

  8. js 将内容复制到剪切板上

    clipboard是将内容复制到电脑的剪切板上,要引入clipboard.js //将'data-clipboard-text' 样式添加到指定的元素上 $("#effects") ...

  9. Flume初入门简单配置与使用

    1.Flume在集群中扮演的角色 Flume.Kafka用来实时进行数据收集,Spark.Storm用来实时处理数据,impala用来实时查询. 2.Flume框架简介 1.1 Flume提供一个分布 ...

  10. oracle执行先决条件检查失败的解决方法

    在安装oracle 11g时,出现执行先决条件失败的情况如下: 你可以忽略所有强制安装,一般不会影响功能,但如果你想知道为什么会产生这种错误, 并且当出现以上情况时又该如何解决呢?如下列出了原因和解决 ...