原子表:
[xyz]abc,其中x,y,z是平行關係,即xabc,yabc,zabc都可以是匹配結果
[^]表示除了中括號內的元素以外都能匹配
任意匹配元字元:.
邊界限制元字元:^,$
限定符:*,?,+,,,
模式選擇符:|,a|b時a和b都可以作為匹配模式
模式單元符:將一些原子組合成大原子使用
使用「re.符號」的方式作為引數加入到函式中
貪婪模式:盡可能多的匹配,". "
懶惰模式:盡可能少的匹配,且為就近匹配,".?"
常見函式:
1.re.match()函式:
從起始位置開始匹配,如果一開始就匹配不了,直接返回none
re.match(pattern,string,flag)
pattern:表示式
string:源字元
flag:標誌位,放模式修正符
2.re.search函式:在全文中匹配,如果全文都匹配不了,再返回none
re.search(pattern,string,flag)
pattern:表示式
string:源字元
flag:標誌位,放模式修正符
3.re.compile()函式:全域性匹配:將滿足匹配的所有結果都提取出來
方法:使 用 re.compile() 對 正 則 表 達 式 進 行 預 編 譯 。
編 譯 後 , 使 用 findall() 根 據 正 則 表 達 式 從 源 字 符 串 中 將 匹 配 的 結 果 全 部 找 出 。
我 們 可 以 通 過 以 下 實 例 更 好 地 理 解 :
import re
string =
"hellomypythonhispythonourpythonend"
pattern = re.
compile
(".python."
)# 預 編 譯
result = pattern.findall(string)
# 找 出 符 合 模 式 的 所 有 結 果
print
(result)
4.re.sub()函式:替換字串,返回替換後的字串
re.sub(pattern,rep, string ,max )
其中,第乙個引數為對應的正規表示式,第二個引數為要替換成的字串,第三個引數
為源字串,第四個引數為可選項,代表最多替換的次數,如果忽略不寫,則會將符合模式
的結果全部替換。
使用re.sub()這個函式,會根據正規表示式pattern,從源字串string查詢出符合模式
的結果,並替換為字元申rep,最多可替換max次。
例項:
1.匹配**:
首先,"://"是固定的,可以寫出來,然後我們要以.com或者.cn結尾,所以正規表示式
的最後應該是[
.coml.cn]
,在":/"與[
.coml.cn]之間,不能現空格,所以我們可以寫為[
^\s]*,
在":/"之前,必須要有內容,所以此時至少要有一次重複,故而我們用"+"而不用"*"
,這些內容可以是任意的字母的組合,包括大小寫,所以可以寫為[a-za-z]
,組合起來,
正規表示式就是:
"[a-za-z]+://[^\s]*[.com|.cn]"
正規表示式 RE
最近一段時間在研究nginx的rewirte重寫機制,因此對re需要有一定的了解,看了想關的文章,因此自己來寫一篇類似總結性的的文章。基本來說,正規表示式是一種用來描述一定數量文字的模式。regex regular express。本文用 regex 來表示一段具體的正規表示式。一段文字就是最基本的...
re正規表示式
1.數字 0 9 2.n位的數字 d 3.至少n位的數字 d 4.m n位的數字 d 5.零和非零開頭的數字 0 1 9 0 9 6.非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7.帶1 2位小數的正數或負數 d d 8.正數 負數 和小數 d d 9.有兩位小數的正實數 0 9 0 9...
Re正規表示式
import re 匯入re模組 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 分組 使用小括號分組 r d d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式表達 r d 重複出現的字串 對於重複出現的字串可以用大括號內部加上重複次數的方式...