python之正規表示式

2021-08-11 02:24:35 字數 1557 閱讀 8728

本來今天沒有下定決心學的,因為我突然心情不好,我就想,我都已經心情不好了,如果再不做點什麼有意義的事情,今天就虛度了,於是乎,我來和大家分享一下,也記錄一下我失戀陰霾的日子,然後走上計算機大神的道路。

今天在實驗室,和師兄聊到了作為程式設計師驕傲的髮際線,師兄說,對於油脂性脫髮,要每天洗頭,這樣也許會有所預防。我只是轉達了相應的說法,有沒有道理大家自己辨別喲,哈哈。言歸正傳,我們開始分享正規表示式。

我學習python的主要網頁是菜鳥教程和廖雪峰老師教python的兩個地方,今天做乙個總結和擴充,希望能對大家有所幫助。文中有些部分是摘抄自原文,有的是自己加入了理解和感悟之後,所以我會將**鏈結附在最後,有不是很明白的可以看原文。

我的思路是:從基礎的符號入手,從組合入手,最後,是複雜一些的正規表示式。

\d: 匹配乙個數字

\w:匹配乙個字母或者數字

\s:匹配乙個空格。\s+表示至少有乙個空格,如:『 『(乙個空格), 』  』(兩個空格)。

^: 表示行的開頭,^\d表示以數字開頭。

$: 表示行的結束,\d$表示以數字結束。

a|b:表示或的關係,a或者b。

*: 表示任意個字元(包含0個)

+: 表示至少乙個字元

?: 表示0個或者1個字元。

例如::表示n個字元。

:表示n-m個字元。

組合:

'\d\d\d'表示匹配三個連續的數字,例如「007」。

'\w\d'表示匹配乙個字母和數字,或者匹配兩個連續數字。例如』a3『或者『74』。

\d表示匹配3個數字,例如『010』。

\d表示3-8個數字,例如『12345678』或者『52461』等等。

複雜一些:\d\s+\d

解讀如下:

1.\d表示匹配3個數字,例如『123』;

2.\s表示匹配乙個空格(也包括tab等空白符),所以\s+表示至少有乙個空格。

3.\d表示3-8個數字,例如『87654321』。

所以這個正規表示式表示匹配類似於:『010   87654321』。

用[ ]匹配,比如:

1.[0-9a-za-z\_]表示匹配乙個數字、字母或者下劃線。0-9表示從0到9。a-z表示從a到z。a-z表示從a到z。

2.[0-9a-za-z\_]在上一行的基礎上增加了個數限制,0到19個。

3.[a-za-z\_][0-9a-za-z\_]*表示可以匹配由字母或下劃線開頭,後接任意個由乙個數字、字母或者下劃線組成的字串

4.(\d+)(0*)$

這裡面加入分組,()表示分組,(\d+)為一組,(0*)表示另一組。$表示以什麼結尾。

(\d+)表示一到多個數字。

(0*)$表示任意個(包含0個)數字零為結尾。

有以上兩部分組成的字串。例如:120100等等。

5.(\w(\w\w))這裡面括號則作用是分組,乙個組是(\w\w\w),另乙個組就是(\w\w),\w表示數字或者字母。

有數字或者字母組成的連續三個字串,如果分組的話,就是由數字或者字母組成的連續三個字串或者兩個字串。

Python之正規表示式

正規表示式正規表示式主要用來匹配字串,例如 判斷乙個字串是否是乙個合法的 思想是用描述性的語言給字串乙個規則。re模組中的match函式提供了這種功能,若匹配成功則返回匹配物件,否則返回none。一 語法 d 表示匹配數字 w 表示匹配字母或數字 可以匹配任意字元 s可以匹配乙個空格或者tab 特殊...

Python之正規表示式

正規表示式元字元如下 匹配除換行符以外的所以字元 規定匹配模式必須出現在目標字串的開頭,例如 hell hello hellboy 規定匹配模式必須出現在目標字串的結尾,例如 ar car bar 其前乙個字元必須在目標物件中連續出現零次或多次 其前乙個字元必須在目標物件中連續出現一次或多次 其前乙...

Python之正規表示式

匯入re模組 檢索和替換 re.sub re.sub pattern,repl,string,count 0,flags 0 pattern 正則中的模式字串 repl 替換的字串,也可為乙個函式 string 要被查詢替換的原始字串 count 模式匹配後替換的最大次數,預設 0 表示替換所有的匹...