原子:原子是表示式的最小組成單位,它可以是普通字元,非列印字元(如換行,製表等),通用字元等
對於普通字元,輸入乙個字串,如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 作用 嘗試從字串的起始...