python學習Day25 正規表示式1

2022-09-02 08:09:14 字數 2551 閱讀 9631

# 所有模組要經歷的兩個步驟:

① 要操作的概念本身:正規表示式   時間

② 使用模組取操作它:re                  time

1、正規表示式:一種匹配字串的規則

# 正規表示式能做什麼?可以定製乙個規則來確認某乙個字串是否符合規則,從大段的字串中找到符合規則的內容

# 程式領域:

① 登入註冊頁的表單驗證

③ 自動化開發

# 正規表示式是一種獨立的語法,和python沒有關係

# 乙個正規表示式學習的小工具:

2、正規表示式的語法

(1)元字元

① 字元組[ ]  在乙個字元的位置上能出現的內容(比如[1bc] ,乙個位置上可以是1,b,c三者中任意乙個)

【注意1】字元組的理解1:[1-9]表示1到9,下面出現1~9的數字均標記(匹配1個)

【注意2】字元組的理解2:[1-9][a-z][a-z]表示第乙個必須是數字,第二個必須是大寫字母,第三個必須是小寫字母,並且三個在一起。(匹配3個)

【注意3】字元組理解3:[1-9a-za-z]表示第乙個位置可以是1~9,也可以是a~z和a~z,因此以下全匹配。(匹配1個)

② 元字元:

\d == [0-9]——表示匹配乙個字元,匹配的是乙個數字

\w == [0-9a-za-z]——表示匹配乙個數字、字母、下劃線

\s == [\n  \t ]——表示匹配任意的空白符,包括回車、空格和製表符tab

\n —— 匹配回車

\t —— 匹配製表符

\d——匹配非數字

\w——匹配非數字字母下劃線

\s——匹配非空白符

【注意】[\d\d]——表示匹配全域性(所有),還有[\w\w]、[\s\s]

非常重要的兩個:

^ ——匹配字串的開始

$ ——匹配字串的結尾

比如,嚴格匹配乙個手機號,多輸入少輸入都不行,就在前加^,後加$。

a|b——表示a或b,在乙個位置上可以出現a或b。(abc|ab——表示匹配abc或ab,但長的要放在前面

[^abc]——表示匹配除了abc以外的任意字元

. ——表示匹配除了換行符以外的任意字元

(2)量詞

\d ——表示前面匹配的數字重複三次

\d\d ——表示第乙個只匹配乙個數字,第二個匹配三次,最後是四個數字

\d ——表示至少匹配數字三次(盡量多的匹配——貪婪匹配

\d ——表示至少匹配數字三次,最多匹配五次(盡量多匹配)

\d? ——表示匹配數字零次或一次(相當於沒有匹配上也算成功)(\d\.?\d——結果可以有:2.3   23)

\d+——表示匹配數字一次或者多次

\d* ——表示匹配數字零次或多次(\d\.?\d*——結果可以有:2    2.22    2.3457767)

【注意】 特殊用法:

① 在量詞後跟了乙個? ——表示取消了貪婪模式,變成非貪婪模式

李.?和    李連營和    (惰性匹配    回溯演算法)

最常用:  .*x   匹配任意字元直到找到乙個x

(4)分組()與或 | [^]

# 小數或者整數的正規表示式——\d+(\.\d+)?

python學習歷程day25

今天學習了 1.反射 getattr 物件,字串 在物件中找字串 hasattr 物件,字串 判斷字串是否出現在物件中 setattr 物件,字串 在物件中新增字串 delattr 物件,字串 在物件中刪除字串 物件 包括模組,類,函式,方法,變數 字串 包括類,函式,方法,變數 isinstanc...

iOS底層學習 day 25

我是一名ios開發者,ios底層菜鳥的高階之路30天。ios提供了2個拷貝方法nsstring str1 nsstring stringwithformat test str1不管是nsmutablestring,還是nsstring都一樣 淺拷貝,指標拷貝,沒有產生新物件 nsstring str...

day25 多執行緒

單例寫法兩種 2.怎麼通訊 3.sleep方法和wait方法的區別?2.通訊 我們也可以給執行緒設定分組 b 案例演示 myrunnable mr new myrunnable thread t1 new thread mr,張三 thread t2 new thread mr,李四 獲取執行緒組 ...