學習筆記 python中正規表示式常用知識

2021-08-19 17:58:16 字數 2422 閱讀 8602

原子:原子是表示式的最小組成單位,它可以是普通字元,非列印字元(如換行,製表等),通用字元等

對於普通字元,輸入乙個字串,如pat="csdn",在匹配時會把它作為四個原子'c','s','d','n'

舉例:

pat1='csdn'

str1='wasdcsdnss'

result=re.search(pat1,str1)

print(result)

//如果輸出正確,shell會提示//span(m,n)內的數字表示匹配到的字串的位置,從0開始計數,包含m,不包含n

非列印字元對應的表示式寫法如下:

\n  匹配乙個換行符

\t 匹配乙個製表符

通用字元:

此類原子在使用時可以匹配一類字元,常用字元如下:

\w 匹配任意乙個字母,數字或下劃線     \w 匹配除字母,數字和西下劃線以外所有字元

\d 匹配任意乙個十進位制數 \d 匹配除過十進位制數以外任意字元

\s 匹配任意空白字元 \s 匹配任意乙個非空白字元

py中正規表示式區分大小寫,大寫的字母可以表達相反的含義

元字元具有特殊功能的字元,在正規表示式中他們可以用於填充字串,表達不同的含義

^  匹配字串的開始位置

$ 匹配字串的結束位置

? 匹配重複一次或零次的字元

+ 匹配重複一次或多次的字元

* 匹配重複一次,零次或多次的字元

. 匹配除換行符以外的任意字元

匹配括號前的字元正好出現了n次

匹配括號前的字元至少出現了n次

匹配括號前字元至少出現了n次,最多出出現m次

舉例:ast="p*y",這個正規表示式在匹配時表示匹配開頭為p,結尾為y,中間有幾個字元無法確定的字串

ast2="^abc",這個正規表示式匹配限制要求開頭是abc

ast3="$py",這個字串匹配要求末尾時py

模式選擇符

"|"。效果如同「或」,在匹配時只要有表示式其中一項即可匹配。如:"python|php"。無論遇到python還是php均正確。

模式修正符

功能:在不改變表示式的基礎上改變其含義,意思就是說表示式本身沒有被改變,但在匹配時修改了匹配規則。

i  讓表示式不再區分大小寫

m(multline) 多行匹配。將字串視為多行,不管要被匹配的字串中間有幾個回車都可以匹配出來

s 使用後'.'字元也可以匹配換行符

u 根據unicode進行匹配

使用方法:例 re.research(pat,str,i/u/m)

舉例:

import re

pat1="python"

pat2="python"

str="wckwbcphpwccpython"

result1=re.search(pat1,str,re.i)//注意是re.i

result2=re.search(pat2,str)

print(result1)

print(result2)

對於這個程式,輸出的結果為:

<_sre.sre_match object; span=(12, 18), match='python'>

none

說明使用re.i後表示式就可以匹配到對應的大寫字元了

貪婪模式與懶惰模式

總的來說,貪婪模式是在滿足條件的情況下盡可能地多匹配到字串,懶惰模式則是盡可能地少匹配。

舉例:edepycwcycwccwy,在這個字串中有三個y

使用"p.*y"這個表示式可以一直匹配到最後乙個y

使用「p.*?y」這個表示式只匹配到「py」這個字串

常用函式

re.match(pattern,str,flag)

該函式功能為從待匹配字串開頭開始匹配

re.search(pattern,str,flag)

掃瞄整個字串來尋找匹配

re.compile()

找出所有符合模式的內容

舉例:str='hellomyyespythonokpythonmypython'

pat=re.compile('.python.')

result=pat.findall()

print(result)

該程式會找出所有符合的結果並用中括號包括

re.sub(pat,rep,str,max)

rep表示要用來替換的字串,max表示替換次數,不寫則為全部替換

python 中正規表示式的學習

在做文字處理的時候,經常會使用正規表示式,每次使用的時候,都要使用搜尋引擎,怎麼樣才能熟練掌握,提高自己開發的效率,故決定 把正規表示式梳理一下,方便自己掌握 如果是單個分隔符,可以直接使用字串的 s hello,csdn print s.split 多個分隔符使用正規表示式 import re 中...

python中正規表示式

python中正規表示式語法與linux中的相容 檢視正規表示式 python提供re模組,包含所有正規表示式的功能。由於python的字串本身也用 轉義,所以要特別注意 s abc 001 python的字串 對應的正規表示式字串變成 abc 001 建議使用python的r字首,就不用考慮轉義的...

Python 中 正規表示式

一 最近要對字串執行很多操作,所以學了正規表示式 不得不說正規表示式對字串的操作還是很給力的 runoob上面的教程 python中的正規表示式 正規表示式教程 python中要使用正規表示式,首先要匯入re模組 import re 二 常用函式 或者說方法 re.match 作用 嘗試從字串的起始...