转译符,re模块,random模块
一, 转译符
1.python 中的转译符
正则表达式中的内容在Python中就是字符串
' \n ' : \ 转移符赋予了这个n一个特殊意义,表示一个换行符
' \ \ n' : \ \ 表示取消了\的转译
r 表示取消本字符串的所有转译
在正则表达式中: '\\n'-->'\n',但是在pycharm中 \n为换行符,则需要转译 '\\n',与之匹配
的应为 : '\\\\n'-->'\\n '
在Python中 : r '\\n'-->r '\n'
2. 正则表达式中的转义
' \( ' 表示匹配小括号 ; [() + * ? / $ .] 在字符组中一些特殊的字符会现原形.
[ - ] 只写在字符组的首位的时候表示普通的 减号 / 负号写在其他位置表示范围
如果就是想匹配减号 [1\-9]
二, re 模块
操作匹配的字符串
方法: findall search math 替换 sub subn 切割 compile finditer
1. 查找
findall : re.findall('正则表达式','字符串')
- ret = re.findall('\d+','123qwer123df')
- print(ret) #参数 返回值类型:列表 返回值个数:1 返回值内容:所有匹配的项若没有
匹配到就是空列表 []
search : re.search('正则表达式','字符串')
- ret = re.search('\d+','123qwer123df')
- print(ret) #参数 返回值类型: 正则匹配结果的对象 返回值个数 : 1
- 如果匹配上就返回对象,没匹配上返回None
print(ret.group()) #返回的对象通过group来获取匹配到的第一个结果
match : re.match('正则表达式','字符串')
- ret = re.match('\d+','%^123qwer123df')
- print(ret)
- #结果 : None #只从头开始匹配,相当于在正则表达式前添加一个 ^
2. 替换( replace)
sub
- ret = re.sub('\d+','H','123qwedf',1) #把'\d+'替换成'H',指定替换一次(不指定次数全替换)
- print(ret)
subn
- ret = re.subn('\d+','H','123qwedf',1)
- print(ret)
- #结果 ('Hqwerdf' , 1) 给出替换结果和替换的次数
3. 切割 (split)
- ret = re.split('\d+','123qwerdf')
- print(ret) #按数字切割
4. compile (提高时间效率)
- ret = re.compile('-0\.\d+|-[1-9]\d(\.\d+)?') #可以重复被利用 ,在多
- 次使用某一个相同的正则表达式的时候,compile会提高
- 程序的效率.
- re = ret.search('qwe-20df-3')
- print(re.group())
- #结果 -20
5. finditer (提高空间效率)
- ret = re.finditer('\d','123qwerdf') #拿到一个生成器
- for i in ret #拿到正则表达式对象
- print(i.group())
6. 分组优先显示
findall
- ret = re.findall('www.(baidu|goole).com,'www.baidu.com')
- print(ret)
- #结果 [] findall 会优先显示分组中的 baidu|goole 匹配内容,要想取消分
- 组优先,(?:正则表达式)
split
- ret = re.split('(\d+)','qwe12d34f')
- print(ret) #遇到分组会保留 被切掉的内容
- #结果 ['qwe','12','d','34','f']
search
- re.search('\d+(.\d+)(.\d+)?','1.2.3-2*(60+(-40.35/5))')
- print(ret.group())#全部输出/即是print(ret.group(0))
- print(ret.group(1))# .2 优先输出(.\d+) print(ret.group(2))# .3
#如果search中有分组,通过group(n)就能够拿到group中的匹配的内容
7. 分组命名
(?P<name>正则表达式) 表示给分组起名字 ; (?P=name) 表示使用分组
当匹配的内容和 另一部分必须一样是可以使用分组命名
前后组名必须一样才能匹配成功
必须先定义分组才能使用分组
索引方法使用分组
\1 表示使用第一组,匹配到的内容必须和第一个组中的内容完全相同
三, random模块
随机: 在某个范围内取到每一个值的概率是相同的
1. 随机小数
random.random() 0-1之间的随机小数
random.uniform(1,9) 任意范围内的小数
2. 随机抽取
num = [1,2,3,'qwe',('hehe','haha')]
random.choice(num) 随机抽取列表中一个值
random.sample(num,2) 随机抽取列表中2(多个值)值
3. 随机整数
random.randint(1,8) [1,8] 包含8在内的范围内随机取整数
random.randrange(1,8) [1,8) 不包含8在内的范围内随机取整数
random.randrange(1,10,2) [1,8) 不包含8在内的范围内随机取奇数整数
4. 打乱顺序
num = [1,2,3,'qwe',('hehe','haha')]
random.shuffle(num) 在原列表基础上打乱顺序
转译符,re模块,random模块的更多相关文章
- python常用模块——random模块
参考博客:http://www.360doc.com/content/14/0430/11/16044571_373443266.shtml 今天突然想起python该怎么生成随机数?查了一下,贴出实 ...
- Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型)
Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某 ...
- Python模块01/自定义模块/time模块/datetime模块/random模块
Python模块01/自定义模块/time模块/datetime模块/random模块 内容大纲 1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块 1. ...
- python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块
正则表达式 语法: mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...
- Python:time模块/random模块/os模块/sys模块
time 模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 python中时间日期格式化符号: %y 两位数的 ...
- 4-24日 collections模块 random模块 time模块 sys模块 os模块
1, collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdi ...
- python 全栈开发,Day27(复习, defaultdict,Counter,时间模块,random模块,sys模块)
一.复习 看下面一段代码,假如运行结果有问题,那么就需要在每一步计算时,打印一下结果 b = 1 c = 2 d = 3 a = b+c print(a) e = a + d print(e) 执行输 ...
- re模块 ,random模块
# 在python中使用正则表达式 # 转义符 : 在正则中的转义符 \ 在python中的转义符# 正则表达式中的转义 :# '\(' 表示匹配小括号# [()+*?/$.] 在字符组中一些特殊的字 ...
- 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)
认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...
随机推荐
- visual studio code配置项
// 通过将设置放入设置文件中来覆盖设置. { //-------- 编辑器配置 -------- // 控制字体系列. "editor.fontFamily": "Co ...
- TP5.0:访问不同模块方法,跳转视图页面
我们在开发项目时,都会给每个项目加上基本的后台管理页面,并命名为admin 那么,我们在添加admin后台模块后,怎么通过url访问admin后台模块文件代码呢? 1.访问admin模块默认文件的UR ...
- 如何清理Windows缩略图缓存?
从Win95的IE4开始就有缩略图缓存了,缩略图缓存作用主要是用于存储Windows资源管理器缩略图图像文件.这加快了图像的显示速度,因为每次用户查看文件夹时都不需要重新生成这些较小的图像.缩略图缓存 ...
- 108. Convert Sorted Array to Binary Search Tree (building tree with resursion)
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ...
- 细说new与malloc的10点区别(转载)
原地址https://www.cnblogs.com/QG-whz/p/5140930.html#_label1_0 new与malloc的10点区别 1. 申请的内存所在位置 new操作符从自由存储 ...
- POJ-2828 Buy Tickets---线段树+逆序
题目链接: https://cn.vjudge.net/problem/POJ-2828 题目大意: 插队的问题,每个案例给出n,代表有n个插队的,每个给出p,v,意思是代号为v的人插在了第p个人的后 ...
- Android(java)学习笔记52:成员位置的内部类的介绍
1. 内部类的定义 /* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部类的成员,包括私有. ...
- Lucas 大组合数
题目:HDU 3037 题意:有n个树,m个坚果,放到n个树里,可以不放完,有多少种方法. 分析: 得到组合数了. 大组合数什么费马小定理,Lucas定理都来了: 总的说,不能用二维地推了,用的却是组 ...
- Golang Failpoint 的设计与实现
小结: 1. https://mp.weixin.qq.com/s/veIoupLjM4l5SUVC6h_Gkw Golang Failpoint 的设计与实现 原创: 龙恒 PingCAP 今天
- 2018.11.10 Mac设置Eclipse的 .m2文件夹是否可见操作&&Mac系统显示当前文件夹的路径设置
第一行就是设置为可见的记得要重启Finder不然是没有效果的 第二行就是设置为不可见的 打开"终端"(应用程序->实用工具),输入以下两条命令: defaults write ...