在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)
最新文章
- SQL查询表字段的信息
- scanf
- 标准类型内建函数 str()和 repr() (及 `` 运算符) 简单介绍
- BugZilla的安装过程简明教程
- OpenJudge/Poj 1723 SOLDIERS
- .Net+MySQL
- BZOJ 1109 POI2007 堆积木Klo LIS
- teamviewer试用期到期解决
- A. Arrays(Codeforces Round #317 水题)
- 数据结构-自平衡二叉查找树(AVL)详解
- 虚拟机中的linux系统文件突然全部变成只读的问题
- CRM系统设计方案
- “Error:(1, 1) java: 非法字符: &#39;\ufeff&#39;”错误解决办法
- C++学习札记(2)
- SSM 项目整合
- javascript的基础知识整理
- BZOJ 4004: [JLOI2015]装备购买
- 20145127《java程序设计》第十周学习总结
- dgraph 基本查询语法 一
- Collabtive 系统 SQL 注入实验(补充)
热门文章
- 三维计算机视觉 — 中层次视觉 — Point Pair Feature
- Ubuntu 14.04 LTS 系统空间不足,输入密码后,无法进入桌面的解决办法
- 进程池的同步与异步用法Pool
- Web前端攻击方式及防御措施
- Mac OSX取消Apache(httpd)开机启动(转载)
- input属性为number时,如何去掉右边的 +、-号
- 四、XML语言学习(3)
- java对excel文件内容读写修改操作
- (function(){…})(); 与 (function(){…}());
- CentOS7.6 安装Docker