簡單實用的正規表示式

2022-05-30 22:54:14 字數 1675 閱讀 2116

定義:一種匹配字串的規則

模組要經歷的兩個步驟:

a:要操作的概念本身,例如time,你只有了解了時間是什麼才能去用它

生活中處處是正則,比如你說高階動物,你會想到人,那豬狗雞鴨都排除了;

b:模組匯入進行操作

c:可以定義乙個規則:

來確定某乙個字串是否符合規則

從大段的字串中找到符合規則的內容

d:正規表示式是一種獨立的語法,和python直譯器無關;

a:爬蟲領域:爬取網頁,用正規表示式提取有用的資訊;

b;登入註冊也的表單驗證,web開發

c:自動化開發,日誌分析

a:字元組:[字元組]在乙個位c個字元組成的乙個字元組;

用字串中的每乙個元素,跟[字串組]中的元素比較,只要找到相同的就提取出來,提取出來之後

就直接從下乙個開始比較,而不是從頭開始;

b:字元[0-9](0到9的所有數字) [a-z](所有小寫字母) [a-z](所有大寫字母)遵循ascii碼

***注意當[0-9a-za-z]時要注意他們之間ascii碼的值大小,元素要從小到大;

c:元字元:

元字元

匹配內容

小數點.

匹配字母以外的任意字元

\w匹配字母和數字或下劃線

\s匹配所有的空白符(包括換行)

\d匹配所有的數字

\d匹配所有的非數字

\s匹配所有的非空白符(包括換行)

\w匹配f非字母和數字或下劃線

\bw\b前邊界為w    \bw後邊界為w

\n匹配乙個換行符

\t匹配乙個製表符

a|b匹配字元a或b(bc|b  不能是b|bc找到乙個之後就停了)

^匹配字串的開始

$匹配字串的結尾

[字元組]

匹配字元組的字元

[^字元組]

匹配除了字元組中的字元

()匹配括號內的表示式,也表示乙個組

#幾個關於元字元的小知識點:

1)[\d\d]表示全域性;所有的字元;

2)\b字元:  表示字元的前邊界 字元\b後邊界,以空白符為界;

3)^只匹配開頭,$只匹配結尾,若連起來用,

效果如下:

2.量詞

量詞用法說明

*重複多次和更多次

+重複一次或更多次

?重複0次或一次

重複n次

重複n次或更多次

重複n到m次

量詞的一些小應用:1)乙個量詞只約束前面的乙個或一組(括號裡面的)字元;

2)元字元加量詞?,表示匹配了0次或一次,?表示了匹配這個動作;

3)記憶竅門:?+*(?相當於0到1  +相當於1到無窮  *相當於0到無窮)

3.正則的貪婪匹配和惰性模式

貪婪匹配:盡可能多的匹配多個

例如:\d.?(先看元字元有幾個,兩個就是一次匹配兩個字元)

\d.+(這個跟上面的區別就在於,\d.+不能是單個數字)

惰性模式:在量詞後面加?**惰性模式,匹配時會把元字元一直比較,找到了就停下,

而貪婪匹配用的是回溯演算法,直接找到最後,然後往回找,找到停下; 

實用正規表示式

匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 匹配空白行的正規表示式 n s r 評注 可以用來刪除空白行 匹配ht...

實用的正規表示式

驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 9 0 9 驗證非零的正整數 1 9 0 9 驗證非零的負整數 1 9 0 9 驗證非負整數 正整數...

實用的正規表示式

大於0 的數字 1 9 0 9 d 0 d d 非負整數.d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9...