re模块相关
一.正则表达式中的转义:
"\" 表示转义符
[()+*?/$.] 在字符组中一些特殊的字符会现出原形
所有的\w \d \s (\n,\t) \W \D \S 都表示它原本的意义
[-]只要卸载字符组的首位的时候表示普通的减号
python中的转移符
'\n': '\' 赋予这个n一个特殊的意义,表示一个换行符
r:表示取消转义
二.re模块
1.findall: re.findall('正则表达式','字符串')
输出是一个列表里装着正则表达式切出来的一个个字符串
例:
import re
ret = re.findall('\d+','545ds5444dsd545d')
print(ret) =>['', '', '']
2.search: re.search('正则表达式','字符串')
输出的是正则表达式切除来的第一个符合条件的字符串
例:
#通过正则表达式拿第一个符合条件的值
ret1 = re.search('\d+','545dsd99sd545d')
print(ret1.group()) =>545 #通过.group 拿序号里面的值
ret1 = re.search('(\d)(\d)(\d)','545dsd99sd545d')
print(ret1.group()) =>545
print(ret1.group(1)) => 5
print(ret1.group(2)) => 4
print(ret1.group(3))=> 5
3.match: re.match('正则表达式','字符串')
和search类似,都是根据正则表达式返回第一个符合条件的字符串,但match只只针对第一个的数据类型必须和正则表达式相同,如果不容则报错
例:
ret2 = re.match('\d+','545dsd99sd545d')
print(ret2.group()) =>545
ret2 = re.match('\d+','aa545dsd99sd545d')
print(ret2.group())=>AttributeError: 'NoneType' object has no attribute 'group'
4.sub/subn: re.sub('正则表达式','要替换的内容','执行的字符串')
输出的是一个字符串
例:
ret = re.sub('\d+','H','replace789nbc2xcz392zx')
print(ret) => replaceHnbcHxczHzx
ret = re.subn('\d+','H','replace789nbc2xcz392zx')
print(ret) => ('replaceHnbcHxczHzx', 3) #subn 会返回替换次数
5.split: re.split('正则表达式','字符串')
输出的是一个列表中装着以正则表达式定义切割的多个字符串
如果正则表达式用括号括起来,则输出的是一个列表中装着所有内容(包括要切掉的)
例:
ret = re.split('\d+','alex83egon20taibai40')
print(ret) =>['alex', 'egon', 'taibai', '']
ret = re.split('(\d+)','alex83egon20taibai40')
print(ret) =>['alex', '', 'egon', '', 'taibai', '', '']
6.compile (会节省时间,适用于爬虫和自动化开发)
只有在多次使用某一个相同的正则表达式的时候,这个compile才会提高程序的效率
例:
re.findall('-0\.\d+|-[1-9]+(\.\d+)?','alex83egon20taibai40')
# --> python解释器能理解的代码 --> 执行代码
ret = re.compile('-0\.\d+|-[1-9]\d+(\.\d+)?')
res = ret.search('alex83egon-20taibai-40')
print(res.group())
7.finditer (会节省内存)
例:
print(re.findall('\d','sjkhkdy982ufejwsh02yu93jfpwcmc'))
ret = re.finditer('\d','sjkhkdy982ufejwsh02yu93jfpwcmc')
for r in ret:
print(r.group())
8.分组命名
例:
ret = re.search("<(?P<name>\w+)>\w+</(?P=name)>","<h1>hello</h1>")
print(ret.group('name'))=>h1
可以分组命名之后按名字拿值
ret = re.search('<(?P<a>\w+)>(?P<b>\w+)</(?P<c>\w+)>','<a>wahaha</b>')
print(ret.group('c')) => b
re模块相关的更多相关文章
- Unity3d 音效模块相关
关于Unity的音效方面,主要关注以下3个类: Audio Clip : audio data,导入到unity中的音频文件都是audio clip. Audio Sources : 挂载这audio ...
- Nginx日志和http模块相关变量
$arg_PARAMETER #HTTP 请求中某个参数的值,如/index.php?site=www.ttlsa.com,可以用$arg_site 取得 www.ttlsa.com 这个值. $ar ...
- MM-采购模块相关业务
采购模块主要业务流程: 1.收集采购需求(采购申请单),系统采购申请单单据可以由需求部门手工产生,也可以由系统的MRP(物料需求计划)来产生. 2,货源确定,用来确定所申请的物料,通过何种方式向供应商 ...
- 【iCore2 模块相关资料】iM_LAN 100M 以太网模块UDP例程
============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...
- nginx反向代理proxy模块相关参数
http_proxy_module Proxy_pass proxy_pass指令属于ngx_http_proxy_module模块,此模块可以将请求转发到另一台服务器:官方说明:http://ngi ...
- 【iCore2 模块相关资料】发布模块DEMO 代码包,目前支持 iM_TFT30、 iM_LAN和 iM_RGB 三个模块
iCore2 模块底板 和部分模块发布了,所以我们做了一个 DEMO 代码包,此代码包现在有以下功能: 1.支持 iM_TFT30 3寸触摸液晶模块(硬件已发布): 2.支持 iM_LAN 100M以 ...
- Python小知识点(4)--模块相关
1.模块: 定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test). 包:用来从逻辑上组 ...
- H3C光模块相关命令和检测方法
<Sysname> dis transceiver interface GigabitEthernet 1/0/28 查看 GigabitEthernet1/0/28 transcei ...
- python基本模块相关信息
系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...
- ansible操作模块相关
1. 查看模块可用参数命令 ansible-doc -s module_name
随机推荐
- Fiilter
过滤器 过滤请求和响应 作用: 自动登录. 统一编码. 过滤关键字 .... Filter是一个接口 编写filter步骤: 1.编写一个类 a ...
- mysql批量增加表中新列存储过程
一般访问量比较大的网站,请求日志表都是每天一张表独立创建. 业务需要为每张表都添加一个新列,纠结了半天,写了个存储过程如下: 日志表结构类型 tbl_ads_req_20140801, tbl_ads ...
- 阿里云数据库再获学术顶会认可,一文全览VLDB最新亮点
一年一度的数据库领域顶级会议VLDB 2019于当地时间8月26日-8月30日在洛杉矶圆满落幕.在本届大会上,阿里云数据库产品团队浓墨登场,不仅有多篇论文入选Research Track和Indust ...
- day72作业
目录 models模型类 路由配置 视图配置 序列化组件配置 基于ModelSerializer类,完成Car资源的单查,群查,单增接口 序列化:显示车名,车的颜色,车的价格,车的海报,车的品牌 反序 ...
- PhpStorm中terminal窗口字体修改
在PhpStorm–File–Settings–Tools–Terminal中可以看到terminal调用的系统的cmd.exe程序 因此需要做的就是修改系统的cmd.exe中的字体,如下: CMD命 ...
- Java内功修炼系列一责任链模式
在上一节的拦截器中提到,程序的设计者一般会用拦截器替替代动态代理,将动态代理的逻辑隐藏起来,而把拦截器接口提供给开发者,使开发者不需要关系动态代理的具体实现过程,但是有时候需要多个拦截器,而且拦截器之 ...
- Tensorboard在Win7下chrome无论如何无法连接的情况
后记:其实发现原因后感觉自己很蠢,是自己开了一个软件叫adsafe,会屏蔽一些东西,所以我拼命的用自己的电脑ip都连不上,换成回环地址就好了,把软件关了也可以. 在无数种尝试后,终于在stackove ...
- Luogu P2679 子串(字符串+dp)
P2679 子串 题意 题目描述 有两个仅包含小写英文字母的字符串\(A\)和\(B\). 现在要从字符串\(A\)中取出\(k\)个互不重叠的非空子串,然后把这\(k\)个子串按照其在字符串\(A\ ...
- IOException parsing XML document from ServletContext resource
错误是我们学习的机会,不要错过明白明这个错误原因的机会,那么我们就可以更加深刻得理解这个问题. 在启动springmvc的程序去访问的时候,报IO异常,一般情况下IO异常就是文件找不到. 详细错误如下 ...
- element ui table 去掉边框
// /deep/ .el-table { // thead { // .cell { // text-align: left; // table 表头 左对齐 // } // } // .delet ...