1. 程式人生 > >18 11 23 正則學習

18 11 23 正則學習

---恢復內容開始---

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   正則  提取網址程式碼  增加了分組功能   (難  瞭解)

import
re 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)

 

 

 

 

 

 

---恢復內容結束---