正規表示式小結

2022-03-18 02:26:41 字數 3189 閱讀 7806

規則彙總:

# 正規表示式

''' 用於處理字串的強大工具

python的re模組擁有全部的正規表示式的功能

python中的正規表示式是乙個特殊的字串行,

檢查乙個字串是否與某種模式匹配

'''# 元字元 :

# . ^ $ * + ? {} \ | ()

'''大多數字母和字元會匹配它們自身,

有少數特殊字元我們稱為元字元,

它們不能匹配自身,它們定義了字元類、

子組匹配和模式重複次數等

。'''

# 元字元的使用

''' . 匹配除換行符之外的所有的字元

\d 匹配0~9的數字

\s 匹配任意的空白符,包括空格,製表符(tab),換行符等

\w 匹配字母或數字或下劃線或漢字等

\b 表示單詞的邊界

^ 脫字元,匹配輸入字串的開始的位置

$ 匹配輸入字串的結束位置

解除元字元的特殊功能例

\. 表示匹配點號本身

\d、\s、\w、\b是與小寫的相反的作用

'''# 匹配次數

''' m和n 為非負整數,其中m<=n 表示前面的匹配m~n次

表示需要匹配m次

等價於表示需要匹配n次

* 匹配前面的子表示式零次或多次,等價於

+ 匹配前面的子表示式一次或多次,等價於

? 匹配前面的子表示式零次或一次,等價於

注:*?、+?、? 貪婪與懶惰

'''# 子組匹配

''' [ ] 字元類,將要匹配的一類字符集放在裡面

例如:[ . ? * ( ) {} ] 匹配裡面的這些符號

[0-9] 匹配0到9的數字相當於\d

[^\d] 匹配除數字以外的字元,相當於\d

[a-z] 匹配所有的小寫字母

[^a-z] 匹配非小寫字母

| 相當於或(or)分支條件

例如: a | b 匹配字母a或者b 與[ab]是一樣的

'''# 分組

''' () 分組,將要匹配的一類字符集放在()組成乙個小組

例如: (\d) 匹配乙個三位數

a(bc)*匹配乙個a和0個或多個bc

a(b|c) 匹配ab或者ac

'''# re模組

'''re.compile() 編譯正規表示式為模式物件

re模組的常用方法

match()

判斷乙個正規表示式是否從開始處匹配字串

search() 遍歷字串,找到正規表示式匹配的第乙個位置

findall() 遍歷字串,找到正規表示式匹配的所有位置並

以列表的形式返回

檢視匹配物件中的資訊

group() 返回匹配到的字串

star()返回匹配的開始位置

end()返回匹配的結束位置

span() 返回乙個元組表示匹配位置(開始,結束)

'''

常用的正規表示式小結如下:

非負整數:^\d+$

正整數:^[0-9]*[1-9][0-9]*$

非正整數:^((-\d+)|(0+))$

負整數:^-[0-9]*[1-9][0-9]*$

整數:^-?\d+$

非負浮點數:^\d+(\.\d+)?$

正浮點數 : ^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)$

非正浮點數:^((-\d+\.\d+)?)|(0+(\.0+)?))$

負浮點數:^(-((正浮點數正則式)))$

英文本串:^[a-za-z]+$

英文大寫串:^[a-z]+$

英文小寫串:^[a-z]+$

英文本元數字串:^[a-za-z0-9]+$

英數字加下劃線串:^\w+$

url:^[a-za-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$

或:^http:\/\/[a-za-z0-9]+\.[a-za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$

中文:^[\u0391-\uffe5]+$

**號碼:^((\(\d\))|(\d\-))?(\(0\d\)|0\d-)?[1-9]\d(\-\d)?$

手機號碼:^((\(\d\))|(\d\-))?13\d$

雙位元組字元(包括漢字在內):^\x00-\xff

匹配首尾空格:(^\s*)|(\s*$)(像vbscript那樣的trim函式)

匹配html標記:<(.*)>.*<\/\1>|<(.*) \/>

匹配空行:\n[\s| ]*\r

提取資訊中的中國手機號碼:(86)*0*13\d

提取資訊中的中國固定**號碼:(\(\d\)|\d-|\s)?\d

提取資訊中的中國**號碼(包括移動和固定**):(\(\d\)|\d-|\s)?\d

提取資訊中的浮點數(即小數):(-?\d*)\.?\d+

提取資訊中的任何數字 :(-?\d*)(\.\d+)?

ip:(\d+)\.(\d+)\.(\d+)\.(\d+)

**區號:/^0\d$/

帳號(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-za-z][a-za-z0-9_]$

中文、英文、數字及下劃線:^[\u4e00-\u9fa5_a-za-z0-9]+$

匹配中文字元的正規表示式: [\u4e00-\u9fa5]

匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

匹配空行的正規表示式:\n[\s| ]*\r

匹配html標記的正規表示式:/<(.*)>.*<\/\1>|<(.*) \/>/

sql語句:^(select|drop|delete|create|update|insert).*$

匹配首尾空格的正規表示式:(^\s*)|(\s*$)

fei 正規表示式 正規表示式小結

常用的元字元常用的反義 常用的限定符 語法 說明 語法 說明 語法 說明 w 匹配字母或數字或下劃線或漢字 w匹配任意不是字母 數字 下劃線 漢字的字元 重複零次或者更多次 s匹配任意的空白字元 s匹配任意不是空白符的字元 重複一次或更多次 d匹配數字 d匹配任意非數字的字元 重複零次或一次 b匹配...

正規表示式小結

正規表示式 regex 英 red eks 1,d d d d或者是 d 表示匹配4位數的數字。2.說明。這些可被稱作元字元。匹配除換行符以外的任意字元1 jk2yh jj w數字字母漢字下劃線 bst456 5ghgtft s匹配任意的空白符 space table鍵和半全形空格 d匹配數字 di...

正規表示式小結

最近學習了正規表示式,趁還熱乎,寫下這篇部落格,記錄一下。正規表示式 英語 regular expression,在 中常簡寫為regex 正規表示式是乙個字串,使用單個字串來描述 用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正規表示式通常被用來檢索 替換那些符合某個規則的文字,也...