18 11 23 正則學習
阿新 • • 發佈:2018-11-24
---恢復內容開始---
1 小程式 一 郵箱輸入判斷 系統
import re def main(): email = input("請輸入你的郵箱") """下面的意思為 ^ 開頭 從a到z A到Z 0到9 自動匹配 4到20位數字 由於 . 是什麼都可算進去 所以加上 / 來解除他的功能 最後用 $ 來當作結尾""" ret = re.match(r"^([a-zA-Z0-9]){4,20}@(163|126|qq)\.com$",email)if ret : print("%s是符合規範的"%email) user_emali = ret.group() # 呼叫group的方法就可以 調用出匹配到的資料 print(user_emali) else : print("%s 不是規範的"%email) if __name__ == '__main__': main()
小程式2 正則 提取網址程式碼 增加了分組功能 (難 瞭解)
importre html_str = "<h1>hahahha</h1>" judje = re.match(r"<(?P<name1>\w*)>.*</(?P=name1)>",html_str) # 用 (?P<name>) 和 (?P=name) 來進行分組定位 html = judje.group() # 上面的P要 大寫 print(html)
簡單版
import re html_str = "<h1>hahahha</h1>"judje = re.match(r"<(\w*)>.*</\1>",html_str) # 用 ()() \2 \1 \1 就是括號一內容 \2 就是第二個括號的內容 html = judje.group() print(html)
re 的 高階用法 match 是從頭開始搜尋 那麼 search 是從資料裡面找到你想要的 數值
import re ret = re.search(r"\d+","閱讀數量 9999+") information = ret.group() print(information)
search 是找到第一個符合要求的值 相對於search來說 findall可以用來找出多個滿足的值 並且 不用group 直接返回一個列表
import re ret = re.search(r"\d+","閱讀數量 9999+") information = ret.group() print(information)
sub 替換 re.sub(正則出要替換的資料 , 新的資料 , 被替換的文字列)
import re ret = re.sub(r"\d+","666","python = 9999 , a = 20398098 , b = 098098") print(ret)
---恢復內容結束---