Python_Mix*re模块基础方法,进阶,正则表达式的使用
- re模块import re
- 基础方法
- findall:匹配所有 ,每一项都是列表中的一个元素,返回的是列表
- search只匹配从左到右的第一个,得到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果,如果没有匹配到,会返回None,使用group会报错.
- match:从头开始匹配,相当于search中的正则表达式加上一个^
- 字符串处理的扩展:
- 切割:
- split 返回列表,按照正则规则切割,默认匹配到的内容会被切掉.
- 切割:
- 基础方法
import re
ret = re.split('\d+',"alex28jay39jojo24") #从哪里切就丢失什么
print(ret) #结果为
['alex', 'jay', 'jojo', ''] import re
ret = re.split('(\d+)',"alex28jay39jojo24") #小括号括起来正则式,返回的时候会加上被切的内容
print(ret) #结果为
['alex', '', 'jay', '', 'jojo', '', '']- 替换:
- sub/subn 按照正则规则去寻找要被替换掉的内容,这个subn和sub的区别就是subn会返回一个元组,第二个元素是替换的次数
- 替换:
- re模块的进阶:
- compile:节省你使用正则表达式解决问题的时间(编译→正则表达式→编译成→字节码...在多次使用过程中,不会多次编译)compile得出的结果可以做search match findall finditer
- finditer:节省你使用正则表达式解决问题的空间/内存,返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值.
- 在Python中使用正则表达式的特点和问题
- 使用正则表达式的技巧
s = '<a>wahaha</a>'
ret = re.search('>(\w+)<',s) #在字符串中匹配到后,会返回小括号中的内容
print(ret.group(1)) #括号的序列从1开始,不填就会返回匹配到的所有内容 #结果为
wahaha #如果group()的括号为空的话
#打印结果为
>wahaha<
- 爬虫的例子
Python_Mix*re模块基础方法,进阶,正则表达式的使用的更多相关文章
- 5.2.2 re模块方法与正则表达式对象
Python标准库re提供了正则表达式操作所需要的功能,既可以直接使用re模块中的方法,来实现,也可以把模式编译成正则表达式对象再使用. 方法 功能说明 complie(pattern[,flagss ...
- js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)
js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...
- js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/)
js进阶正则表达式13RegExp对象方法(RegExp对象的方法:compile,test,exec)(子表达式 var reg1=/([a-z]+)\d/) 一.总结 1.RegExp对象有三个方 ...
- js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译)
js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译) 一.总结 1. RegExp的属性和方法,就是RegE ...
- python基础-7模块,第三方模块安装方法,使用方法。sys.path os sys time datetime hashlib pickle json requests xml
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- 【Python基础】之不同的文件在不同目录下导入指定模块的方法
如下图三个文件的目录路径 – project |– 1 | |– 2 | | |– 3 | | | |– owen.py ...
- python 模块基础介绍
从逻辑上组织代码,将一些有联系,完成特定功能相关的代码组织在一起,这些自我包含并且有组织的代码片段就是模块,将其他模块中属性附加到你的模块的操作叫做导入. 那些一个或多个.py文件组成的代码集合就称为 ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
- python基础——面向对象进阶
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...
随机推荐
- Getting Started with Word2Vec
Getting Started with Word2Vec 1. Source by Google Project with Code: https://code.google.com/archive ...
- COMS3200 The RUSH protocol
Part C (50 marks)The RUSH protocol (Reliable UDP Substitute for HTTP) is a HTTP-like stop-and-wait p ...
- Oracle索引之Btree索引
索引介绍 日常开发中,对于数据的查询如果需要优化,常听说要加个索引.但是为什么加了索引,数据的查询就快了呢?那是不是加了索引就一定会是有效或者有利的呢? Oracle中常见有BTREE索引,位图索引和 ...
- Ember.js 看法,精辟
https://ruby-china.org/topics/31451#reply43 都是大牛,或许还是vue适合小白!架不住人多啊!一个非常优秀的产品,客户百十号人,如何发展! 46楼的感想如下, ...
- linux下ifconfig命令看不到IP centos7——ens33
当前环境VMware15+centos7 在终端输入ifconfig后没有开到IP地址: 解决方法:root用户执行命令 cd /etc/sysconfig/network-scripts/ vi ...
- vue文档阅读笔记——计算属性和侦听器
页面链接:https://cn.vuejs.org/v2/guide/computed.html 注意点 计算属性用于 替代模板内的表达式. 如果计算属性所依赖的属性未更新,会返回自身的缓存. 侦听器 ...
- mysql workbench快捷键小结
执行整篇sql脚本, ctrl+shift+enter 执行当前行,ctrl+enter 注释/取消注释, ctrl+/ [注意]这里的 / 指的是小键盘中的除法Divide符号格式化sql语句( ...
- HTML5本地存储之本地数据库篇
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title&g ...
- 注入(injector)
在java开发中有时候我们的一个类需要依赖另外一个类,这种就是依赖关系,创建对象的工作一般由spring容器来完成然后注入给调用者,这种就是依赖注入. Java依赖注入设计原则允许我们移除硬编码依赖和 ...
- js的点滴
一些好的博客 http://www.cnblogs.com/coding4/p/7809063.html canvas http://www.cnblogs.com/coding4/p/5593954 ...