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...