Python基礎 標準庫概覽 22

2021-10-04 06:23:14 字數 2893 閱讀 6205

1.正規表示式庫re

簡單的例項:

import re

defre_test()

:# 函式的定義中,可以看出返回的是乙個匹配物件,它單獨使用就沒有任何意義,需要和findall(), search(), match()搭配使用,以match()舉例。

c ='cat'

p = re.

compile

('c'

) u = p.match(c)

print

(u)# 從字串開頭往後匹配

if __name__ ==

'__main__'

: re_test(

)# compile()與match()一起使用,可返回乙個class、str、tuple。

# 但是一定需要注意match(),從位置0開始匹配,匹配不到會返回none,返回none的時候就沒有span/group屬性了,並且與group使用,返回乙個單詞『hello』後匹配就會結束。

元字元:

序號符號

描述使用1.

(點)在預設模式下,這與除 newline 以外的任何字元匹配。如果指定了dotall標誌,則與包括 newline 在內的任何字元匹配。匹配除「\n」之外的任何單個字元。

'..a'匹配'dda'而不匹配'dfr'2^

(關注者)匹配字串的開頭,並且在multiline模式下,在每個新建線之後也立即匹配。字串開始。

'^hello'匹配'helloworld'而不匹配'aaaahellobbb'3$

匹配字串的末尾或字串末尾的 newline 之前,在multiline模式下,在newline 之前也匹配。 匹配"foo"和"foobar",而正規表示式僅匹配"foo"。更有意思的是,在匹配"foo2"中搜尋正常,但在multiline模式下搜尋"foo1";在中搜尋單個將找到兩個(空)匹配項:乙個在換行之前,乙個在字串的末尾。foofoo$foo.$'foo1\nfoo2\n'$'foo\n'。字串結尾。

'world$'匹配'helloworld'而不匹配'worldobbb'4*

使生成的 re 匹配前乙個 re 的 0 或更多重複,盡可能多重複。 將匹配"a","ab"或"a",後跟任意數量的"b"。ab*。匹配前面的子表示式任意次(貪婪匹配)。

『ca*t』匹配』caaaaaaaaat』匹配』ct』 不匹配』cayt』5+

使生成的 re 匹配前乙個 re 的 1 個或更多重複。 將匹配"a",後跟任何非零數的'b';它不會匹配只是'a'。ab+。匹配前面的子表示式一次或多次(大於等於1次)(貪婪匹配)。

『ca*t』匹配』caaaaaaaaat』 不匹配』ct』6?

使生成的 re 匹配前乙個 re 的 0 或 1 個重複。 將匹配"a"或"ab"。ab? 匹配前面的子表示式零次或一次(貪婪匹配)。

'c?t' 匹配'ct'或者't'不匹配'cct'

7指定應匹配上乙個 re 的m副本;較少的匹配導致整個 re 不匹配。例如,將正好匹配六個字元,而不是五個字元。a'a'。m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。

'cat'匹配'caaat'不匹配'caaaaaat'8

表示乙個字符集。

'c[abc]t' 匹配'cat'匹配'cbt' 不匹配'czt'9|

表示或。

10\d

轉義符號: 相當於[0-9]。只匹配乙個單個數字。\d+ 匹配多個連續數字。\d匹配指定個數(5個)的數字。

'c\dt'匹配 'c6t'不匹配'c16t'

11\d

表示乙個字符集。

'c[abc]t' 匹配'cat'匹配'cbt' 不匹配'czt'

12\s

轉義符號: 匹配任意空白字元[\t\n\r\r\v]

'c\st'匹配'c t'不匹配'cat'

13()

匹配括號內的任何正規表示式,並指示組的開始和結束;執行匹配後,可以檢索組的內容,並在字串的稍後部分使用下面描述的特殊序列進行匹配。要匹配文字或 、使用 或 或,或將它們封閉在字元類中: 。\number'('')'\(\)[(][)]。匹配括號中任意表示式。

'c(a|b|c)t'匹配 'cat'匹配'cct' 不匹配'cut'14r

不會轉意按照字元處理,例如,\n 在raw string中,是兩個字元,\和n, 而不會轉意為換行符。

r『\n\n\n\n\n\n『

group用法

import re

defre_test()

:# 函式的定義中,可以看出返回的是乙個匹配物件,它單獨使用就沒有任何意義,需要和findall(), search(), match()搭配使用,以match()舉例。

q ='2018-05-10'

p = re.

compile

(r'(\d+)-(\d+)-(\d+)'

) m = p.match(q)

.group(1)

+ p.match(q)

.group(2)

+ p.match(q)

.group(3)

n = p.match(q)

.groups(

)print

(m)# 從字串開頭往後匹配

print

(n)# 「do(es)?」可以匹配「do」或「does」中的「do」。?等價於

if __name__ ==

'__main__'

: re_test(

)# compile()與match()一起使用,可返回乙個class、str、tuple。

# 但是一定需要注意match(),從位置0開始匹配,匹配不到會返回none,返回none的時候就沒有span/group屬性了,並且與group使用,返回乙個單詞『hello』後匹配就會結束。

Python標準庫概覽

python標準庫通常被稱為 自帶的電池 自然地提供了廣泛的功能,涵蓋了大概200個左右的包與模組。不斷有高質量的包或模組被開發出來,極大的豐富了標準庫。但有些模組放在標準庫中很難去維護,比如 berkeley db 模組,其被清理出標準庫進行單獨維護。還有一些庫,比如pyparsing 建立分析器...

Python基礎 標準庫

1 獲取現在的時間 import time 要使用庫就必須要引入 獲取本地時間,返回的時間的結構體,不是很直觀 t local time.localtime 獲取utc世界統一時間,返回的時間的結構體,不是很直觀 t utc time.gmtime 這個方法返回本地時間的字串,看起來就比較直觀 ti...

Python 基礎 標準庫

python 標準庫 python standrad library 中包含了大量有用的模組,同時也是每個標準的 python 安裝包中的一部分。熟悉 python 標準庫十分重要,因為只要你熟知這些庫可以做到什麼事,許多問題都能夠輕易解決。我們將探索這個庫中的一些常用模組。你能在你的 python...