PythonRegex,
PythonRegex
原子是Regex中最基本的組成單位,每個Regex至少包含一個原子。常見原子類型有一般字元作為原子、非列印字元作為原子、通用字元作為原子、原子表。使用時需要調用re模組。
一、一般字元作為原子
Eg: import re
string=”taoyunjioayu”
pat=”yun”
rst=re.search(pat,string)
print(rst)
二、非列印字元作原子
Eg: \n 分行符號 \t 定位字元
import re
string=```taoyunjiaoyu```
pat=”\n”
rst=re.search(pat,string)
print(rst)
三、通用字元作為原子
\w:代表任何一個字母、數字、底線
\W:代表任何一個非字母、數字、底線
\d:代表一個十進位數字
\D:代表除十進位數字外的任何
\s:空白字元
\S:除空白字元
四、原子表
幾個原子放在[ ]內組成了原子表。原子表內的各個原子是平等的。表示從原子表中任意的提取一個原子出來。
Eg:[sdk]
表示從string中提取s,d,k原子中的任何一個出來。
string=”djfhdkgsdk”
pat=”kg[sdk]”
rst=re.seach(pat,string)
print(rst)
運行結果:kgs
五、元字元
所謂的元字元,就是在Regex中具有一些特殊意義的字元,比如重複N次前面的字元。
(1) . :匹配除分行符號以外任一字元(稱為“萬用字元”)
(2) .. :模糊比對
(3) ^ :匹配開始位置
(4) $ : 匹配結束位置
(5) * :重複匹配
(6) ? :匹配出現0、1次
(7) +:匹配出現1次到多次
(8) {n}:恰好出現n次
(9) {n,m}:最少出現n次,最多出現m次
(10) | :模式選擇符或
(11) ( ) :模式單元
*等價於{0,正無窮} +等價於{1,} ?等價於{0,1}
六、模式修正符
Eg: rst=”re.search(pat,string,re.I)”
註:pat為Regex;string為資料來源;I為模式修正符
(1)I 匹配時忽略大小寫
(2)M 多行匹配
(3)L 本地化匹配識別
(4)U unicode的匹配
(5)S 讓 . 匹配包括分行符號
七、Regex函數
1.re.match:從頭開始匹配
2.re.search:任意地方都可匹配,只能匹配一次(匹配成功一次後則不再進行後面的匹配,而是直接輸出結果)
3、全域匹配函數:re.compile(Regex).findall(資料)
4、re.sub( ):用於字串的替換
re.sub(Regex,替換為的內容,來源資料)