1.re.match() 匹配第一个值

列表里的值可以有多个范围,有一个符合就可以。

match只匹配第一个值,所以列表里的范围是第一个值得取值范围。如果第一个值被设定好且存在,那么列表的取值范围变为第二个,match返回的值会变成第一个和第二个。

有些内容首字符是固定的,比如手机号等。match的作用就是查看文件中的一些固定的字符是否出错或者获得文件中首个字符(没有指定首字符的情况下)。

  1. import re
  2.  
  3. date = "5M345bc"
  4.  
  5. print(re.match("5[0-9]","345bc"))
  6. print(re.match("[a-z,A-Z,0-9]",date))

2.re.search()  

search 需要在取值范围后加上长度限定,否则和match一样,只会取符合条件的第一个值。

search是全局搜索,符合条件就返回,match是从第一个搜索。

search返回的是一个字符串,长度为花括号里的设定。

search从全局返回的是第一个符合条件的值,那么怎么才能返回所有符合条件的值?

  1. import re
  1. print(re.search("[a-z]{4}","345789abdc"))

  

  1. print(re.search("3[0-9]{5}","345789abdc")) #花括号里的是返回值的最大个数,不能超过总长度。
  2.  
  3. print(re.search("[a-z,A-Z,0-9]{8}","345789abcd"))

3.findall()  返回所有符合条件的值。

search只返回花括号里设定长度的值的字符串,不设定长度就只返回一个字符,和match一样,只是search是全局。

findall 返回一个列表,里面的值可根据花括号里面的长度分离开来,成为列表中的一个一个元素。

  1. import re
  2.  
  3. print(re.match("[0-9]","345789abdc"))
  4.  
  5. print(re.search("[a-z]{2}","345789abdc"))
  6. print(re.search("[a-z,A-Z,0-9]{4}","345789abcd"))
  7.  
  8. print(re.findall("[a-z]{2}","345789abdc"))
  9. print(re.findall("[a-z,A-Z,0-9]{4}","345789abcd"))
  10.  
  11. # <_sre.SRE_Match object; span=(0, 1), match='3'>
  12. # <_sre.SRE_Match object; span=(6, 8), match='ab'>
  13. # <_sre.SRE_Match object; span=(0, 4), match='3457'>
  14. # ['ab', 'dc']
  15. # ['3457', '89ab']

如何拿到search里面match的值

利用group()方法,首先得判断返回值是否是None

  1. res1 = re.search("[a-z,A-Z,0-9]","345789abcd")
  2.  
  3. if res1 :
  4. print(res1.group())

  

  

re匹配语法-match、search和findall的更多相关文章

  1. python爬虫笔记之re.match匹配,与search、findall区别

    为什么re.match匹配不到?re.match匹配规则怎样?(捕一下seo) re.match(pattern, string[, flags]) pattern为匹配规则,即输入正则表达式. st ...

  2. python(23)re函数:compile、match、search、findall

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  3. Python中re的match、search、findall、finditer区别

    原文地址: http://blog.csdn.net/djskl/article/details/44357389 这四个方法是从某个字符串中寻找特定子串或判断某个字符串是否符合某个模式的常用方法. ...

  4. re.match re.search re.findall区别

    re正则表达式里面,常用的三种方法的区别. re.macth和search匹配得到的是match对象,findall得到的是一个列表. match从字符串开头开始匹配,search返回与正则表达式匹配 ...

  5. re正则match、search、findall、finditer函数方法使用

    match 匹配string 开头,成功返回Match object, 失败返回None,只匹配一个. search 在string中进行搜索,成功返回Match object, 失败返回None, ...

  6. python基础-6.1 match search findall group(s) 区别

    import re # match findall经常用 # re.match() #从开头匹配,没有匹配到对象就返回NONE # re.search() #浏览全部字符,匹配第一个符合规则的字符串 ...

  7. re 模块 常用正则表达式符号 最常用的匹配语法

      常用正则表达式符号1 '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^'     匹配字符开头,若指定flags MULTILINE, ...

  8. python正则表达式--match search方法

    1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, st ...

  9. EXCEL匹配结果match并跳转链接hyperlink

    1,有时候想要搜索另一个表格中含有相同内容的项,然后跳转到搜索结果单元. 需要用到两个函数,MATCH和HYPERLINK 2,A表格如下 B表格如下 3,在B2单元格中输入函数 =HYPERLINK ...

随机推荐

  1. spring boot---WebFilter注解 实现自定义登录过滤器

    https://my.oschina.net/wangnian/blog/647976 http://www.jianshu.com/p/05c8be17c80a

  2. iOS中NSNotification、delegate、KVO三者之间的区别与联系?

    前面分别讲了delegate.notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细 ...

  3. SpringMVC上传多文件

    springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传.这两种方式对于实 现多文件上传效率上却有着很大的 ...

  4. Barn Repair

    链接 分析:我们不断统计相邻两个元素之间的差值,按照差值从大到小排序,在进行贪心即可 /* PROB:barn1 ID:wanghan LANG:C++ */ #include "iostr ...

  5. MYSQL数据库学习----MYSQL数据类型

    一切数据在计算中都是以二进制形式存储,而8位二进制数就表示1个字节. 通常我们说一种数据类型占多少字节,就是说这种数据类型可以表示多少位的二进制数,同时二进制数可以转换为十进制数,进而得到这种数据类型 ...

  6. bzoj 2836 魔法树 —— 树链剖分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2836 树链剖分裸题: 写码五分钟,调码两小时,RE不断,狂交二十五遍,终于找到一处小细节—— ...

  7. vue-resourse 提交表单 使用formData

    通过formData对象可以组装一组用XMLHttpRequest发送请求的键/值对.它可以更灵活方便的发送表单数据,因为可以独立于表单使用.如果把表单的编码类型设置为multipart/form-d ...

  8. page-break-before和page-break-after

    page-break-before和page-break-after CSS属性并不会修改网页在屏幕上的显示,这两个属性是用来控制文件的打印方式. 每个打印属性都可以设定4种设定值:auto.alwa ...

  9. 02_通过scrollview实现内容滚动

    在ScrollView里面放一个Button和TextView程序直接就挂了. ScrollView它只限制了有几个孩子,没限制有几个孙子.给Button和TextView套上一个爹LinearLay ...

  10. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 16. 角色管理

    注入UserManager和RoleManager 建立View页面.这段视频中没有录. RoleManager的服务没有注册 注册的地方进行修改 再次运行就可以了 这个ViewModel实际上只需要 ...