在python中使用正则表达式
一.转义符
1.在python中的转义符
(1)\\n与\n的区别
(2)r"\next" 通过r来进行转义
(3)"\\\\d"与"\\d"的组合
2.在正则表达式中的转义符
(1)\\n 表示匹配\n这个字符
(2)[(), +, *,/, ., ?, $] 这些符号在[]中会现原形
(3)"\(" 表示匹配(这个符号
二 re模块
1.字符串匹配
(1)re.findall("正则表达式", "字符串") 返回一个列表,返回的内容为 匹配到的所有内容,如果没有匹配到内容返回[].
(2)re.search("正则表达式", "字符串") 返回匹配到结果的对象,如果没有匹配到内容返回None
(3)re.match("正则表达式", "字符串") 返回内容同上search,但是在字符串开头必须匹配到内容,如果开头没匹配到返回None
2.替换和切割
(1)re.sub("正则表达式", "替换的内容", "字符串",个数(默认全部替换)) 返回一个被替换过的字符串
(2)re.subn("正则表达式", "替换的内容", "字符串",个数(默认全部替换)) 返回一个元组,返回内容为被替换过 的字符串和替换的个数
3.进阶方法
(1)re.compile("正则表达式") (时间效率) 节省时间:只有多次使用某一个相同的正则表达式时才使用
(2)re.findter("正则表达式", "字符串") 返回一个迭代器,通过for循环可得到匹配到的所有结果的对象.再使用group()打印用每个结果
三.正则表达式在python中使用的一些特殊用法
1.findall+分组 优先显示分组里的内容,要想取消分组优先,要在分组中加(?:)
2.search+分组 通过group(n),可以得到group()匹配到的内容
3.split+分组 保留分组内被分割掉的内容
4.分组命名
(1).
ret = re.search("<(?P<name>\w+)>\w+</(?P=name)>", "<a>hahaha</a>")
print(ret.group())
print(ret.group("name"))
print(ret.group(1))
# print(ret.group(2))
ret = re.search(r"<(\w+)>\w+</\1>", "<a>hahaha</a>")
print(ret.group())
print(ret.group(1))
四.random模块
1.随机小数
(1).random.random() 0-1范围内的随机小数
(2)random.uniform(1,5)任意范围内的随机小数
2.随机整数
(1)random.randint(1,2) [1,2]包含2在内的范围内随机整数
(2)random.randrange(1,2) [1,2) 不包含2在内的范围内的随机整数
(3)random.randrange(1,10,2) [1,10)不包含10在内的范围内的随机奇数
3.随机抽取
(1)random.choice(list) 随机从列表中抽取一个值
(2)random.sample(lst,n) 随机抽取n个值
(3)random.stuffle(list) 在原列表的基础上做乱序
随机抽取
随机抽取一个值
lst = [1,2,3,'aaa',('wahaha','qqxing')]
ret = random.choice(l)
print(ret)
随机抽取多个值
ret = random.sample(lst,2)
print(ret) 打乱顺序 在原列表的基础上做乱序
lst = [1,2,3,'aaa',('wahaha','qqxing')]
random.shuffle(lst)
print(lst)
def rand_code(n=6 , alph_flag = True):
code = ''
for i in range(n):
rand_num = str(random.randint(0,9))
if alph_flag:
rand_alph = chr(random.randint(97,122))
rand_alph_upper = chr(random.randint(65,90))
rand_num = random.choice([rand_num,rand_alph,rand_alph_upper])
code += rand_num
return code ret = rand_code(n = 4)
print(ret)
在python中使用正则表达式的更多相关文章
- Python::re 模块 -- 在Python中使用正则表达式
前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...
- 在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类
在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好p=re.compile(r' 正则表达式')的内容. 下面是在Python中使用 ...
- python模块 re模块与python中运用正则表达式的特点 模块知识详解
1.re模块和基础方法 2.在python中使用正则表达式的特点和问题 3.使用正则表达式的技巧 4.简单爬虫例子 一.re模块 模块引入; import re 相关知识: 1.查找: (1)find ...
- Python学习-38.Python中的正则表达式(二)
在Python中,正则表达式还有较其他编程语言有特色的地方.那就是支持松散正则表达式了. 在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了.而松散正则表达式就是解决这一问题的办法. 用上一 ...
- Python学习-37.Python中的正则表达式
作为一门现代语言,正则表达式是必不可缺的,在Python中,正则表达式位于re模块. import re 这里不说正则表达式怎样去匹配,例如\d代表数字,^代表开头(也代表非,例如^a-z则不匹配任何 ...
- [Python]网络爬虫(七):Python中的正则表达式教程
转自:http://blog.csdn.net/pleasecallmewhy/article/details/8929576#t4 接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一 ...
- [Python]网络爬虫(七):Python中的正则表达式教程(转)
接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. ...
- 在python中使用正则表达式(转载)
https://www.cnblogs.com/hanmk/p/9143514.html 在python中使用正则表达式(一) 在python中通过内置的re库来使用正则表达式,它提供了所有正则表 ...
- python中的正则表达式(re模块)
一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...
- python中关于正则表达式三
2015年8月14日 11:10 7.2正则表达式操作 正则表达式使用反斜杠字符'\'来暗示一些特殊的形式或者允许特殊的字符使用但是没有调用它们特殊的意思.在字符串常量中的相同目标的字符的python ...
随机推荐
- [原] MyBatis 整理
花了一上午的时间,先整理一个脑图.
- docker-compose & docker 镜像/加速
docker-compose: http://sanwen.net/a/nuwruoo.html docker加速: http://guide.daocloud.io/dcs/daocloud-915 ...
- linux的基本操作(磁盘管理)
磁盘管理 [查看磁盘或者目录的容量 df 和 du] df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k –m等 -i 使用 ...
- apache开启重写模式
现在的好多的框架都使用有路由机制,但是如果在apache下,没有开启重写模式,服务器不会读取路由 所以今天要分享一下apache开启重写模式 ubuntu下: 1.在命令行下 sudo a2enmod ...
- 27、 jq 拖拽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JS setAttribute兼容
问题和表现: 最近实践中遇到的问题,setAttribute()设置在IE7中,无法设置style等属性.这样就对设置样式带了很大的困扰,例如绑定点击事件来隐藏元素,setAttribute(”sty ...
- 剑指offer——python【第16题】合并两个有序链表
题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...
- css的小知识
---恢复内容开始--- 1.当你发现在制作页面时出现滚动条就需要一个去除滚动条的属性 overflow:hidden: overflow-x:hidden:水平超出隐藏 2. ...
- 线段树 || BZOJ1756: Vijos1083 小白逛公园 || P4513 小白逛公园
题面:小白逛公园 题解: 对于线段树的每个节点除了普通线段树该维护的东西以外,额外维护lsum(与左端点相连的最大连续区间和).rsum(同理)和sum……就行了 代码: #include<cs ...
- iOS NSCache缓存类的了解
前言: 最近面试时,问到了限定并发数的视频下载,当时回答的时通过GCD_barrier 处理,回来想想也可以通过NSCache处理,所以顺便复习一下,这个知识点. 一,关于NSCache说明 说明 ...