Python 基礎(chǔ)學(xué)習(xí)10

標準庫學(xué)習(xí):

日常應(yīng)用比較廣泛的模塊是

1. 文字處理的 re

2. 日期類型的time、datetime

3. 數(shù)字和數(shù)學(xué)類型的math、random

4. 文件和目錄訪問的pathlib、os.path

5. 數(shù)據(jù)壓縮和歸檔的tarfile

6. 通用操作系統(tǒng)的os、logging、argparse

7. 多線程的 threading、queue

8. Internet數(shù)據(jù)處理的 base64 、json、urllib

9. 結(jié)構(gòu)化標記處理工具的 html、xml

10. 開發(fā)工具的unitest

11. 調(diào)試工具的 timeit

12. 軟件包發(fā)布的venv

13. 運行服務(wù)的main

單字正則匹配符號: . ^ * + ? {m} {m,n} [] | 轉(zhuǎn)譯正則匹配符號:\d(相當(dāng)于[0-9]+) \D (與\d作用相反,表示非數(shù)字) \s (表示a-z字符串) ()(實現(xiàn)分組功能) 組合正則匹配符號: ^(匹配空行) .*?(非貪婪匹配,用于多個相同字符只取首次) r'(\d+)-(\d+)-(\d+)'(r表示\無轉(zhuǎn)譯功能)

import re

p = re.compile(r'(\d+)-(\d+)-(\d+)')

print (p.match('2018-05-10').group())
#輸出結(jié)果2018-05-10
print (p.match('2018-05-10').group(1))
#輸出結(jié)果2018
print (p.match('2018-05-10').group(2))
#輸出結(jié)果05
print (p.match('2018-05-10').groups() )
#輸出結(jié)果('2018', '05', '10')
 year, month, day = p.match('2018-05-10').groups()
 print(year)
#輸出結(jié)果2018

match是完整匹配
search是搜索匹配,下面例子match無法正確匹配,但search可以

import re

p = re.compile(r'(\d+)-(\d+)-(\d+)')

print (p.search('aa2018-05-10bb'))
#輸出結(jié)果<_sre.SRE_Match object; span=(2, 12), match='2018-05-10'>,其中span是位置,match是匹配到結(jié)果

sub是字符替換功能

phone = '123-456-789 # 這是電話號碼'
p2 = re.sub(r'#.*$','',phone)
print(p2)
#輸出結(jié)果123-456-789,把后面注釋替換為空

p3 = re.sub(r'\D','',p2)
print(p3)
#輸出結(jié)果123456789,把中間-替換為空

findall是全空間字符串搜索匹配

import re
string = "x abc y 123 z 123"
pattern = re.compile(r'\d+')
print(re.search(pattern,string))
# 輸出結(jié)果<re.Match object; span=(8, 11), match='123'>,找到1個123
print(pattern.findall(string))
#輸出結(jié)果 ['123', '123'],找到多個123

鏈接前面正則學(xué)習(xí)筆記

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容