306_python_模块3_re_file

网友投稿 569 2022-05-30

re 正则表达式

1. 字符相关

2. 数量相关

3. 括号-单独返回括号内的匹配结果

格式

import re re.findall("re规则","文本")

1 字符相关

`alexsully` 匹配文本中的alexsully `[abc]` 匹配a或b或c字符 `[^abc]` 匹配除了abc以外的其他字符。 `[a-z]` 匹配a~z的任意字符( [0-9]也可以 )。 [A-Z] `.` 代指除换行符以外的任意字符 `\w` 代指字母或数字或下划线(汉字) `\d` 代指数字

import re text = "你2b好wupeiqi,阿斯顿发awupeiqasd 阿士大夫a能接受的wffbbupqaceiqiff" data_list = re.findall("[abc]", text) print(data_list) # ['b', 'a', 'a', 'a', 'b', 'b', 'c']

2 数量相关

`*` 重复0次或更多次 `+` 重复1次或更多次 `?` 重复0次或1次 `{n}` 重复n次 `{n,}` 重复n次或更多次 `{n,m}` 重复n到m次

text = "alexraotrootadmin" data_list = re.findall("r.+o", text) # 贪婪匹配 print(data_list) # ['raotroo'] text = "alexraotrootadmin" data_list = re.findall("r.+?o", text) # 非贪婪匹配 print(data_list) # ['rao']

3.括号

分组功能1:提取数据区域

import re text = "dsf130429191912015219k13042919591219521Xkk" data_list = re.findall("\d{17}[\dX]", text) # [abc] print(data_list) # ['130429191912015219', '13042919591219521X']

分组功能2:获取指定区域 + 或条件

import re text = "楼主15131root太牛15131alex逼了,在线想要 442662578@qq.com和xxxxx@live.com谢谢楼主,手机号也可15131255789,搞起来呀" data_list = re.findall("(15131(2\d{5}|r\w+太))", text) print(data_list) # [('15131root太', 'root太'), ('15131255789', '255789')] text = "楼主太牛逼了,在线想要 442662512@qq.com和xxxxx@live.com谢谢楼主,手机号也可15131251189,搞起来呀" email_list = re.findall("[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+", text, re.ASCII) print(email_list) # ['442662578@qq.com', 'xxxxx@live.com']

2 文件操作

三个动作:打开,操作,关闭

1 打开模式

f1 = open("db.txt",mode='rb') f1 = open("db.txt", mode='wb') f1 = open("db.txt", mode='ab') f1 = open("db.txt", mode='ab') with open(file_path, "r+") as f: #打开一个文件用于读写。文件指针将会放在文件的开头。 对文本文档的内容做操作,那么Python可以帮助你自动实现字符串和字节的转换 f1 = open("db.txt",mode='r', encoding='utf-8') f1 = open("db.txt", mode='w', encoding='utf-8') f1 = open("db.txt", mode='a', encoding='utf-8') data = f1.write("程松") f1.close()

2 操作

写write

f1 = open("new.txt", mode='w', encoding='utf-8') while True: text = input(">>>") line = "{}\n".format(text) data = f1.write(line) f1.flush()

306_python_模块3_re_file

读,read

f1 = open("new.txt", mode='r', encoding='utf-8') data = f1.read() # 读所有 for item in f1: # 按行读 print(item.strip()) f1.close() total_size = os.stat("new.txt").st_size # 查看文件大小 print(total_size) # rb 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 f1 = open("new.txt", mode='rb') f1.read(3)

3 关闭文件

f1.close() with open("db.txt", mode='a', encoding='utf-8') as f1: # 自动关闭

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:jQuery就业课程之表单选择器系列
下一篇:如何利用vue和php做前后端分离开发?
相关文章