re模块提供了3个方法对输入的字符串进行确切的查询,match和search最多只会返回一个匹配条件的子串,可以理解为非贪婪模式,而findall会返回N个匹配条件的子串,可以理解为贪婪模式

re.match()

re.search()

re.findall()

#match()方法的工作方式是只有当被搜索字符串的开头匹配模式的时候它才能查找到匹配对象,match返回的是对象,对象里面包含了很多信息

match=re.match(r'dog','dog cat dog') #只要匹配到满足条件的就不匹配了
print match.group(0) #dog
print match.start() #0
print match.end() #3
match=re.match(r'cat','dog cat dog')
print type(match) #<type 'NoneType'> #因为cat没有在字符串的开头,所以没有匹配到

  #search()方法和match()类似,不过search()方法不会限制我们只从字符串的开头查找匹配,它匹配子串,直到匹配到为止或者字符串结束为止

match=re.search(r'cat','dog cat dog')
print match.group(0) #cat,如果不分组,默认就是第0组
print match.start() #4
print match.end() #7

  #findall返回的是列表

match=re.findall(r'dog', 'dog cat dog') #匹配是整个字符串,每个子串都要匹配,匹配到的字符串剔除,后面的字符串要继续匹配正则条件,直到字符串的结尾,有多少匹配多少
print match #['dog', 'dog']

  #使用 mathch.group 分组使用(),分组和不分组匹配的"大子串"都是一样,但是分组之后,可以对这些子组做单独处理。

contactInfo = 'Doe, John: 555-1212'
match=re.search(r'\w+, \w+: \S+', contactInfo)
print match.group(0) #Doe, John: 555-1212
match = re.search(r'(\w+), (\w+): (\S+)', contactInfo)
print match.group(0) #Doe, John: 555-1212,第0组表示匹配的"大子串",满足全部条件
print match.group(1) #Doe
print match.group(2) #John
print match.group(3) #555-1212

  #当一个正则表达式有很多分组的时候,通过组的出现次序来定位就会变的不现实。Python还允许你通过下面的语句来指定一个组名:

match = re.search(r'(?P<last>\w+), (?P<first>\w+): (?P<phone>\S+)', contactInfo)
print match.group('last') #Doe
print match.group('first') #John
print match.group('phone') #555-1212

  #尽管findall()方法不返回分组对象,它也可以使用分组。类似的,findall()方法将返回一个元组的集合,其中每个元组中的第N个元素对应了正则表达式中的第N个分组。

match=re.findall(r'\w+, \w+: \S+', contactInfo)
print match #['Doe, John: 555-1212']

  

match=re.findall(r'(\w+), (\w+): (\S+)', contactInfo)
print match #[('Doe', 'John', '555-1212')]

  

Python开发应用-正则表达进行排序搜索的更多相关文章

  1. python的正则表达一

    一.常用的正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种 ...

  2. Python的正则表达概述

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...

  3. python——字符串 & 正则表达

    raw字符串(原始字符串) 所见即所得,例如r''My's\n'' Python转义字符 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符.如下表: 转义字符 描述 \(在行尾时) 续 ...

  4. python 利用正则表达的式提取特定数据如手机号

    import re file=open('1.txt','r') listfile=file.readlines() listfile=','.join(listfile)#合并文本 listfile ...

  5. Python之面向对象和正则表达(代数运算和自动更正)

    面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...

  6. python 正则表达提取方法 (提取不来的信息print不出来 加个输出type 再print信息即可)

    1,正则表达提取 (findall函数提取) import re a= "<div class='content'>你大爷</div>"x=re.finda ...

  7. python——re模块(正则表达)

    python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...

  8. Python排序搜索基本算法之归并排序实例分析

    Python排序搜索基本算法之归并排序实例分析 本文实例讲述了Python排序搜索基本算法之归并排序.分享给大家供大家参考,具体如下: 归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序 ...

  9. 【python】Leetcode每日一题-搜索排序数组2

    [python]Leetcode每日一题-搜索排序数组2 [题目描述] 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k( ...

随机推荐

  1. java实现视频转码

    废话不多说,直接上代码: 这是转码工具类: package com.gcsoft.pyas.sysbase.utils; import com.gcsoft.pyas.AppProperties; i ...

  2. [转帖]亚马逊发布自主64核心ARM处理器:单核性能远超铂金至强

    亚马逊发布自主64核心ARM处理器:单核性能远超铂金至强 https://news.mydrivers.com/1/660/660383.htm 不知道真假 看样子比华为的鲲鹏920 要牛B . 亚马 ...

  3. [转帖]记一次KUBERNETES/DOCKER网络排障

    记一次KUBERNETES/DOCKER网络排障 https://coolshell.cn/articles/18654.html 记得之前在一个公众号里面看过这个文章 讲的挺好的.. 物理机直接跑d ...

  4. 如何获取文件夹下所有文件名称(windows)

    1. win+R -> cmd 打开dos命令窗口 2. 打开需获取文件名的位置 3. 获取名称 命令格式:dir /b >> 文件目标盘符:\文件夹位置(可省略)\目标名称.目标后 ...

  5. setPos 详解

    etWindowPos 详解   函数名: SetWindowPos 头文件: winuser.h 函数原型: BOOL SetWindowPos ( HWND hWnd, //窗口句柄 HWND h ...

  6. AJAX调用数据,滚动到底部

    最近一个小项目里面,需要使用AJAX去拉取数据,并且直接显示最后一条信息,也就是滚动到底部.实现脚本如下: var scrollHeight = $('.txtBox3').prop("sc ...

  7. mysql优化 ON DUPLICATE KEY UPDATE

    场景:比如,有一张表,专门记录业务里的唯一数据记录,这张表里如果存在此唯一数据的记录就更新此行数据的某个字段,如果此唯一数据不存在,那么就添加一条最新数据. 一贯操作:如果不知道mysql有 ON D ...

  8. PHP7中方法的弃用

    php7与数据库连接创建函数方法调用: function fun_conn($sql) { $con = mysqli_connect("localhost", "roo ...

  9. PropTypes.element和PropTypes.node的区别

    PropTypes.element:指React Element,即React.CreateElement生成的元素,React.CreateElement可以用jsx语法糖表示: <MyBut ...

  10. CSS-锚点笔记

    注意点: position属性 定义建议元素布局所用的定位机制 {position:static/absolute/relative/fixed;} static:默认值,没有定位 absolute: ...