import re
#1.re.search 掃瞄整個字串並返回第乙個匹配的字元
urls=['','','','']
for i in urls:
#rule=re.match('https',i) # 查詢以https開頭的**
rule=re.search('\d',i) #查詢內容包含數字的**
if rule:
print(i)
#2. {}表示個數
print(re.match(r"\d", '123aab')) #匹配以三個數字開頭的字串
print(re.match(r'\d\s+\d','123aab'))#匹配含有多個空白的數字串
#3. 表示範圍
print(re.match(r'[a-z0-9]','123aab')) #匹配任意乙個小字母字或數字
print(re.match(r'[a-z0-9]','aab33'))
print(re.match(r'[a-z0-9]+','aab33')) #匹配任意多個小字母或數字
print(re.match(r'[a-z0-9]+','33aab'))
#4. *號代表任意個
print(re.findall(r'[a-z][0-9]*','aab2')) #匹配以小寫字母開頭後接任意個數字的字串
# 結果:['a', 'a', 'b2'] *代表任意個,也包括0個, 前兩個a後面都沒有接數字,匹配出來是單個a,後面的b2匹配的是乙個字母乙個數字
print(re.search(r'[a-z][0-9]*','aab245')) #匹配以小寫字母開頭後面接任意個數字的字串
#5.{}*自由結合
print(re.findall(r'[a-z][0-9]','aab2')) #匹配以小字母開頭,後接1-3個數字的字串,只是匹配沒有限制是開頭
print(re.search(r'[a-z][0-9]','aab2'))
#6.^ 表示以什麼開頭
print(re.search(r'^[a-z0-9a-z][email protected]$','[email protected]'))
print(re.search(r'^[a-z0-9a-z]+@(qq|qq|163|126).com$','[email protected]'))
#7.()括號表示取其中乙個
print(re.search(r'^[a-z0-9a-z]+@(qq|qq|163|126).com$','[email protected]')) #匹配字母或數字開頭的 大小寫qq,163,或126的郵箱
#8.使用者輸入使用者名稱,判斷使用者名稱是否符合規則 :使用者名稱長度為8,必須大寫字母或下劃線開頭,不能含有*號
username=['m123','m1fkdf','abcd1234','123cad','_dkfe*78']
for i in username:
pattern=r'^[a-z_]\w' #以大寫字母或下劃線開頭,長度為8位,大寫字母開頭已經佔了一位,後面還剩7位,\w表示任意字元 \w表示任意7位字元
if re.match(pattern,i):
print(i)
else:
print('invalid username')
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...