Python:Day19 正则表达式补充
贪婪匹配
贪婪匹配是指字符后面是*+?的时候,都是尽可能多的匹配,如果不想尽可能多的匹配,那么在这三个字符后面加?号即可,这样变成惰性匹配,按最少匹配。
ret = re.findall('ab??','dfaabbbdwofj')
print(ret) #['a', 'a']
\d 匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。
\S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]
\b 匹配一个特殊字符边界,比如空格 ,&,#等
注意:以前这些只能用来匹配单个字符,如果想匹配多个,后面要加适当的元字符
ret = re.findall('\d','dfaabbbdwof123j')
print(ret) #['1', '2', '3']
ret = re.findall('\d{3}','dfaabbbdwof123j')
print(ret) #['123']
ret = re.findall('\d+','dfaabbbdwof123j')
print(ret) #['123']
ret = re.findall('\d*','dfaabbbdwof123j')
print(ret) #['', '', '', '', '', '', '', '', '', '', '', '123', '', '']
分组( )
ret = re.search('(ab)(ty)','erwabtyyy')
print(ret.group()) #abty
#search返回的是匹配到的整个字符
ret = re.search('(ab)/(ty)*','erwab/tytyy')
print(ret.group()) #ab/tyty
#再次证明search返回的是匹配到的整个字符
ret = re.findall('(ab)(ty)+','erwabtyfewwpabtytyab')
print(ret) #[('ab', 'ty'), ('ab', 'ty')] 为什么后面有元字符+,却不匹配后面一个ty???
#findall默认只返回分组匹配到的字符,并且每个分组匹配到的字符用逗号隔开放在一个元组里面,作为一个整体
ret = re.findall('(ab)/(ty)+','erwabtyfewwpab/tytyab')
print(ret) #[('ab', 'ty')]
#再次证明findall默认只返回分组匹配到的字符,匹配规则中的其它字符不显示。
ret = re.findall('(?:ab)/(?:ty)+','erwabtyfewwpab/tytyab')
print(ret) #['ab/tyty'] 里面不再是一个元组了
#如果想让findall返回整个规则匹配到的所有内容,在小括号中加上?:即可,此时返回的就是所有内容。
#猜测:上面findall中(ty)后面的+没用可能是,这个元组不存储相同的元素。
Python:Day19 正则表达式补充的更多相关文章
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Python 进阶 - 正则表达式
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- python study - 正则表达式
第 7 章 正则表达式 7.1. 概览 7.2. 个案研究:街道地址 7.3. 个案研究:罗马字母 7.3.1. 校验千位数 7.3.2. 校验百位数 7.4. 使用 {n,m} 语法 7.4.1. ...
- python使用正则表达式文本替换
2D客户端编程从某种意义上来讲就是素材组织,所以,图片素材组织经常需要批量处理,python一定是最佳选择,不管是win/linux/mac都有一个简单的运行环境 举两个应用场景: 如果不是在某个文件 ...
- python的正则表达式 re
python的正则表达式 re 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一 ...
- Python之正则表达式(re模块)
本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 正则表达式(Regluar Expressions)又称规则 ...
- python/数据库操作补充—模板—Session
python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...
- Python:正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
- 【Python】正则表达式纯代码极简教程
<Python3正则表达式>文字版详细教程链接:https://www.cnblogs.com/leejack/p/9189796.html ''' 内容:Python3正则表达式 日期: ...
随机推荐
- JAVA 多线程(2)
一.首先 Thread 是实现了Runable 接口的类 理论上Thread 实例与直接实现runable接口的实例运行起来没有什么不同,但是由于JAVA 是单继承,所以如果想再一个类中实现2个不同的 ...
- JavaScript String常用方法和属性
在JavaScript中,字符串是不可变的,如果使用索引对字符串进行修改浏览器不会报错,但也没有任何效果.JavaScript提供的这些方法不会修改原有字符串的内容,而是返回一个新的期望的字符串. 一 ...
- elementUI vue table 操作选项中弹出框确定dialog
1.html <el-table-column label="操作" width="150" fixed="right" align= ...
- Conccrent中 Unsafe类原理 以及 原子类AutomicXX的原理以及对Unsafe类的使用
Unsafe类的介绍 Java中基于操作系统级别的原子操作类sun.misc.Unsafe,它是Java中对大多数锁机制实现的最基础类.请注意,JDK 1.8和之前JDK版本的中sun.misc.Un ...
- 求二叉树第n层节点数
在知乎看到今日头条的一个面试题“求二叉树第n层节点数”:https://zhuanlan.zhihu.com/p/25671699,想到了这样一个解法,欢迎大家交流 我的解法采用递归的思想,从0层开始 ...
- Android--手势及触摸事件的注意点(一)
实现onInterceptTouchEvent方法可以用来拦截父ViewGroup传递下来的所有触屏事件,可以将所有触屏事件交由此ViewGroup自身的onTouchEvent来处理,也可以继续传递 ...
- c++趣味之变量名,颠覆所有教科书的VisualStudio
GCC不参与这次的趣味. 所有的教程都会告诉你,c++的变量名,类名,函数名都应该是字母或下划线开头的字母.数字.下划线组合,像这样: int _abc123; 实际上,VisualStudio并不遵 ...
- MySQL优化技巧【持续更新】
前言 应用程序或web网页有时慢的像蜗牛爬似的,可能是网络原因,可能是系统架构原因,还有可能是数据库原因.那么如何提高数据库SQL语句执行速度呢?下面是积累的一些优化技巧,望对君有用. 正文 1.比较 ...
- Oracle EBS FORM lov
存在一种情况: 一个LOV的值当前有效,因此填入保存.但突然无效后,当查询该界面时就会弹出LOV框使其修改. 解决方案: 1. 非常粗暴,不设置校验,在LOV对应的item强行将校验设置为NO. 2. ...
- ASP.Net上传文件
在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...