日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

正则表达式_月隐学python第20课

發(fā)布時(shí)間:2023/12/19 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式_月隐学python第20课 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1.為什么使?正則表達(dá)式

2.正則表達(dá)式的組成

3.正則常??法

3.1? re.match()?

3.2? re.search()?

3.3? re.findall()?

3.4? re.split?

3.5? re.sub和re.subn

3.6? re.group()和re.groups()

3.7? compile

4.練習(xí)


正則表達(dá)式


正則表達(dá)式是對(duì)字符串操作的?種邏輯公式,就是?事先定義好的?些特定字符、及這些特定字符的組合,組成?個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”?來表達(dá)對(duì)字符串的?種過濾邏輯。

  • 需要引?內(nèi)置模塊re
  • 缺點(diǎn):效率低下,能?字符串?法完成盡量使?字符串的?法
  • 優(yōu)點(diǎn):編碼簡(jiǎn)單

1.為什么使?正則表達(dá)式

使?場(chǎng)景

  • 敏感詞過濾
  • ?機(jī)、郵箱等驗(yàn)證
  • 爬?
    ?

2.正則表達(dá)式的組成

  • 原? 組成正則表達(dá)式的最?單位,任何字符都可以

  • 量詞 量詞能夠增強(qiáng)原?的描述能?

  • 模式修正符

注意:

  • 模式字符串?定要使?原?字符串,也就是?r開頭的字符串。 r'www'
  • 嚴(yán)格區(qū)分??寫
  • 如果正則表達(dá)式中有{, }, [,],-,?,*,|^,$,.等做普通字符,則要將其轉(zhuǎn)義
    ?

3.正則常??法

3.1? re.match()

3.2? re.search()

3.3? re.findall()

3.4? re.split

3.5? re.sub和re.subn

3.6? re.group()和re.groups()

?于提取?元素,模式中?個(gè)括號(hào)就是?個(gè)?元素, group和groups只能在match和search?法?使?,通過返回的match object獲取?元素。在模式串和sub和subn中的替換字符串中可以使?\1, \2, \3....來引??元素

3.7? compile

當(dāng)我們使?正則表達(dá)式時(shí), re模塊會(huì)?兩件事

1、編譯正則表達(dá)式,如果正則表達(dá)式本身不合法,會(huì)報(bào)錯(cuò)

2、?編譯后的正則表達(dá)式去匹配對(duì)象

編譯正則表達(dá)式使?compile

4.練習(xí)

?戶名匹配:由數(shù)字、??寫字?、下劃線 _ 和中橫線 - 組成,?度為4到14位,并且不能以數(shù)字開頭。
把下劃線命名(也叫蛇形命名,所有單詞都是?寫,中間通過下劃線連接),轉(zhuǎn)化為?駝峰命名法(第?個(gè)單詞?寫,其余所有單詞?字??寫)。例如'go_to_next_page',轉(zhuǎn)化后改寫為'goToNextPage'。要求:?正則表達(dá)式替換
匹配郵箱
匹配?機(jī)號(hào)
匹配身份證號(hào)。
匹配URL地址
匹配?期
匹配QQ號(hào)
匹配微信號(hào)
匹配?牌號(hào)
?

def user_name():while 1:name = input("請(qǐng)輸入用戶名:")if len(name) > 3 and len(name) <15 :re_name = re.compile(r'^[^\d]([0-9a-zA-Z])|(_-)')if re_name.match(name) != None:print("用戶名輸入成功:")return nameelse:print("用戶名格式輸入錯(cuò)誤")print("用戶名:由數(shù)字、??寫字?、下劃線 _ 和中橫線 - 組成,?度為4到14位,并且不能以數(shù)字開頭。")else:print("用戶名格式輸入錯(cuò)誤")print("用戶名:由數(shù)字、??寫字?、下劃線 _ 和中橫線 - 組成,?度為4到14位,并且不能以數(shù)字開頭。")user_name() # 小駝峰替換 def replace(obj):obj = obj.group(0)res = [value.upper() for value in obj if obj.islower()]res = ''.join(res)# res = ''# for i in range(len(obj)):# if obj[i].islower():# res += obj[i].upper()# else:# res += obj[i]print(res)return res str1 = input('請(qǐng)輸入字符串:') res = re.sub('_\w',replace,str1) res = re.sub('_','',res) print(res) # 匹配手機(jī)號(hào) def phone():phone_num = input("請(qǐng)輸入手機(jī)號(hào):")ret = re.match(r'^1(([3578]\d)|(47))\d{8}$',phone_num)if ret != None:print('是手機(jī)號(hào)')else:print('不是手機(jī)號(hào)') phone()

?

# 匹配郵箱 def emil():emil_name = input('請(qǐng)輸入郵箱:')# ret =re.match(r'\w{1,10}((@qq.com)|(@126.com)|(@163.com))$',emil_name)ret =re.match(r'[0-9a-zA-Z]{1,10}((@qq.com)|(@126.com)|(@163.com))$',emil_name,re.I)print(ret)if ret != None:print('郵箱正確')else:print('郵箱格式不對(duì)') emil()

?

總結(jié)

以上是生活随笔為你收集整理的正则表达式_月隐学python第20课的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。