306_python_模塊3_re_file
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()
讀,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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。