20190511正規表示式

2021-09-22 09:08:03 字數 1626 閱讀 3574

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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...