正規表示式

2021-09-26 07:41:37 字數 2510 閱讀 1967

正規表示式,又稱規則表示式。(英語:regular expression,在**中常簡寫為regex、regexp或re),電腦科學的乙個概念。正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。

1)match

re.match(pattern, string[, flags])

從首字母開始開始匹配,string如果包含pattern子串,則匹配成功,返回match物件,失敗則返回none,若要完全匹配,pattern要以$結尾。

2)search

re.search(pattern, string[, flags])

若string中包含pattern子串,則返回match物件,否則返回none,注意,如果string中存在多個pattern子串,只返回第乙個。

3)findall

re.findall(pattern, string[, flags])

返回string中所有與pattern相匹配的全部字串,返回形式為陣列。

4)finditer

re.finditer(pattern, string[, flags])

返回string中所有與pattern相匹配的全部字串,返回形式為迭代器。

若匹配成功,match()/search()返回的是match物件,finditer()返回的也是match物件的迭代器,獲取匹配結果需要呼叫match物件的group()、groups或group(index)方法。

『^』用於匹配字串的開始,即行首。

『$』用於匹配字串的末尾(末尾如果有換行符\n,就匹配\n前面的那個字元),即行尾。

『』用於將前面的模式匹配0次或多次(貪婪模式,即盡可能多的匹配)

『+』用於將前面的模式匹配1次或多次(貪婪模式)

『?』用於將前面的模式匹配0次或1次(貪婪模式)

『?,+?,??』即上面三種特殊字元的非貪婪模式(盡可能少的匹配)。

『』用於將前面的模式匹配m次到n次(貪婪模式),即最小匹配m次,最大匹配n次。

『?』即上面『』的非貪婪版本。

『\』:』'是轉義字元,在特殊字元前面加上\,特殊字元就失去了其所代表的含義,比如+就僅僅代表加號+本身。

『』用於標示一組字元,如果是第乙個字元,則標示的是乙個補集。比如[0-9]表示所有的數字,[0-9]表示除了數字外的字元。

『|』比如a|b用於匹配a或b。

『(…)』用於匹配括號中的模式,可以在字串中檢索或匹配我們所需要的內容。

減號「-」的用法:在字符集[…]中表示一組字元,但是如果字符集中的字元不連續就失去了其意義;不在字符集中就表示減號。集體用法可參考正規表示式:特殊字元之「-」(減號)

小括號"()"的用法:表示的是組,具體可參考:正規表示式裡的小括號(),組的概念「-」(減號)

#1.[^]:非字符集,對單個字元給出排除範圍;eg:[^abc],表示非a或b或c的單個字元

#2.^:匹配字串開頭;eg:^abc,表示abc且在乙個字串的開頭

#3.$:匹配字串結尾;eg:abc$,表示abc且在乙個字串的結尾

#4.():分組標記,內部只能使用|操作符;eg:(abc)表示abc,(abc|def)表示abc、def

# 5. .:表示任何單個字元

常見的正規表示式如郵編、**號碼、qq號等,都有固定的表示式形式,建議使用可以減少出錯的概率。

#  正規表示式中+的作用,表示多次匹配

import re

a='abdfef0.551234567eacef555ffsa'

b=re.findall(

'\d+'

,a)print

(b)#輸出結果:['0', '551234567', '555']

b=re.findall(

'\d'

,a)print

(b)#輸出結果:['0', '5', '5', '1', '2', '3', '4', '5', '6', '7', '5', '5', '5']

#正規表示式中r的作用,表示該字串為原生字串,不需要轉義。

str0=

'\\4568'

print

(str0)

#輸出結果:\4568

str0=r'\\4568'

print

(str0)

#輸出結果:\\4568

#匹配字串中的小數的一些情況:

import re

a='abdfef0.551234567eacef555.6ffs88a'

b=re.findall(

'\d+\.\d+'

,a)print

(b)#輸出結果:['0.551234567', '555.6']

正規表示式 正規表示式 總結

非負整數 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 za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...