Python开发应用-正则表达进行排序搜索
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开发应用-正则表达进行排序搜索的更多相关文章
- python的正则表达一
一.常用的正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种 ...
- Python的正则表达概述
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- python——字符串 & 正则表达
raw字符串(原始字符串) 所见即所得,例如r''My's\n'' Python转义字符 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符.如下表: 转义字符 描述 \(在行尾时) 续 ...
- python 利用正则表达的式提取特定数据如手机号
import re file=open('1.txt','r') listfile=file.readlines() listfile=','.join(listfile)#合并文本 listfile ...
- Python之面向对象和正则表达(代数运算和自动更正)
面向对象 一.概念解释 面对对象编程(OOP:object oriented programming):是一种程序设计范型,同时也是一种程序开发的方法,实现OOP的程序希望能够在程序中包含各种独立而又 ...
- python 正则表达提取方法 (提取不来的信息print不出来 加个输出type 再print信息即可)
1,正则表达提取 (findall函数提取) import re a= "<div class='content'>你大爷</div>"x=re.finda ...
- python——re模块(正则表达)
python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...
- Python排序搜索基本算法之归并排序实例分析
Python排序搜索基本算法之归并排序实例分析 本文实例讲述了Python排序搜索基本算法之归并排序.分享给大家供大家参考,具体如下: 归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序 ...
- 【python】Leetcode每日一题-搜索排序数组2
[python]Leetcode每日一题-搜索排序数组2 [题目描述] 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k( ...
随机推荐
- git revert commitid
是生成一个和commitid的提交完全相反的提交.类似倒转.
- 027 SSM综合练习03--数据后台管理系统--product-list.jsp和main.jsp页面制作
1.product-list.jsp页面制作 (1)创建一个product-list1.jsp文件,清空,只保留 <%@ page contentType="text/html;cha ...
- Linux查看CPU信息计算CPU核数量
1. 物理CPU的个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2. 每个物理CPU的核心数量: ...
- Keyboarding
题目描述 思路 一开始想先写一个bfs,目标字符串要加上一个'*',表示这是一个换行符,然后一个字母一个字母的找,每次重置一下vis数组,bfs返回的结果再加上1,表示要打印这个字母,结果第一个样例没 ...
- 移动端开发rem布局之less+媒体查询布局的原理步骤和心得
rem即是以html文件中font-size的大小的倍数rem布局的原理:通过媒体查询设置不同屏幕宽度下的html的font-size大小,然后在css布局时用rem单位取代px,从而实现页面元素大小 ...
- linux安装mysql后报错启动不了Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
今天安装完Mysql后,开启发生了错误: 2.打开错误信息文件,查看错误原因是:Plugin 'FEDERATED' is disabled. /usr/sbin/mysqld: Table 'mys ...
- windows平台上编译mongdb-cxx-driver
编译方法见以下链接,写的非常详细 http://www.pianshen.com/article/9722211716/ 我的编译环境和编译工具如下: 环境:win7或者win10,都试过,没有任何区 ...
- Visual Studio 2019 XAML Hot Reload功能介绍
Visual Studio 2019提供了XAML Hot Reload功能,这个功能可以让WPF程序运行以后仍然可以修改XAML代码,并实时显示. XAML Hot Reload功能在Blend F ...
- Mybatis中使用association进行关联的几种方式
这里以一对一单向关联为例.对使用或不使用association的配置进行举例. 实体类: @Data @ToString @NoArgsConstructor public class IdCard ...
- 利用position absolute使div居中
外层DIV{position:realtive}内层DIV{positon:absolute;top:50%;left:50%;margin-top:-100px;margin-left:-150px ...