溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python正則表達(dá)式-2day

發(fā)布時間:2020-05-30 17:57:52 來源:網(wǎng)絡(luò) 閱讀:190 作者:XUE007QWE 欄目:編程語言
#day-2
'''
author:hello-python
date:2019.1.15
goal:正則表達(dá)式
'''
import re
line01 = 'hellopython'

def regtest(reg_str,line = line01):
    test = re.match(reg_str, line)
    if test:
       print(test.group(1))
    else:
       print("匹配失??!")
# + :表示前面的字符,至少出現(xiàn)一次
reg_str04 = '.*(h.+l).*'  # (b.+b)表示b與b之間至少有一個字符
regtest(reg_str04)      # result : bcxb

#{n} ;控制前面字符出現(xiàn)次數(shù)
#a{2}:表示a出現(xiàn)次數(shù)
#b{3,4} :表示b至少出現(xiàn)3次最多出現(xiàn)4次
#c{4,}:表示c至少出現(xiàn)4次
reg_str05 = '.*(b.{2}b).*' #(b.{2}b) 表示匹配到b與b之間,只有兩個字符;
reg_str06 = '.*(b.{3,4}b).*' #(b.{3,4}b) 表示b與b之間匹配到3到4個字符;
reg_str07 = '.*(b.{4,}b).*' #(b.{4,}b) 表示b與b之間至少4個字符;

# | :表示 或
#(abc|123) : 表示匹配到abc或者123,都算匹配成功
reg_str08='.*(hel|abc)'
reg_str09='.*(abc|hel)'

#[]:表示 里面包含的內(nèi)容都可以進(jìn)行匹配,包含內(nèi)容只有表面字符含義
#[abcd]:表示 只要這個字符為a/b/c/d中的一個都可以匹配成功
#[0-9] :表示 只要這個字符在0-9 區(qū)間內(nèi),都可以匹配成功
#[^x]:表示匹配 字符不為x
line02='電話:17629261608'
reg_str10='.*(1[76][0-9]{9}).*' 
reg_str11='.*(1[76][^1]{9}).*'
regtest(reg_str10,line02)   # result :17629261608
regtest(reg_str11,line02)   # result : 匹配失敗!

# \s 表示匹配空格,匹配一次
# \S 表示匹配不是空格的字符,匹配一次
#\w 表示匹配 A-Z、0-9、_ 中的容易字符,匹配一次
#\W與\w 相反
#\d 表示數(shù)字
# [\u4E00-\u9FA5] : 表示所有漢字,unicode 編碼

def regtest_test(reg_str,line=line01):
    test = re.match(reg_str,line)
    if test:
        print(test.group(1)+':' +test.group(2)+ '-'+test.group(3)+ '-'+test.group(4))
    else:
        print("匹配失敗~!")

#簡單實(shí)例:
str01 = '小王出生于2000年2月2日'
str02 = '小劉出生于2001-01-20'
str03 = '小娟出生于1999/9/9'
str04 = '小敏出生于1998.8.5'
str = [str01,str02,str03,str04]
#提取出姓名+出生日期
#匹配模式
reg_str12 = '(.*)出生于(\d{4})[.年/-](\d{1,2})[.月/-](\d{1,2}).*?'
for i in range(4):
    regtest_test(reg_str12,str[i])

    執(zhí)行結(jié)果
小王:2000-2-2
小劉:2001-01-20
小娟:1999-9-9
小敏:1998-8-5
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI