標籤:style 使用 os ar line table 不同的 網路
摘自網路,綜合自己的理解:
| 函數名 |
原型 |
詳解 |
傳回型別 |
注意事項 |
| re.match |
import re
re.match(pattern,string,flags) |
pattern:Regex,匹配成功,返回一個Match,否則返回一個None
string:要匹配的字串
flags:標誌位,用於控制Regex的匹配方式,如是否區分大小寫,多行匹配等等 |
返回一個_sre.SRE_Match對象,其有兩個方法:group()
groups() |
他只會去從字串的開始與Regex做匹配;
並不會與字串的所有字元進行匹配 |
| re.search |
re.search(pattern,string,flags) |
與match一模一樣,唯一區別:
他會去匹配整個字串,而match只會去匹配字串的開始 |
groups():返回一個元組:(group(1),group(2)...)不包括group(0)
group():預設返回group(0) |
對於一個string,無論其中有多少個被匹配上的字串,他永遠只返回第一個匹配上的字串 |
| re.sub |
re.sub(pattern,repl,string,count) |
pattern:Regex
repl:替換後的字元
string:要匹配的字串
count:替換的個數,0代表所有 |
返回替換後的string |
|
| re.findall |
re.findall(pattern,string,flag) |
pattern:Regex
string:要匹配的字串
flag:標誌位 |
總是返回一個list,如果未匹配到任何,則返回一個空list |
與match和search不同的是:他會將一個字串中所有的匹配到的目標均返回至列表中 |
| re.compile |
re.compile(pattern,flag) |
flag:編譯標識:
I IGNORECASE 忽略大小寫
M MULTILINE 多行匹配 針對於^和$使用
S DOTALL .號將匹配所有字元
X VERBOSE 將忽略規則運算式中的空白,若需要使用則需\+空白,同時允許使用‘#‘在規則運算式中作注釋說明
flag使用方法:如,re.MULTILINE
多個flag可以使用‘|‘來分隔 |
對規格運算式進行先行編譯,返回一個pattern對象,可以使用這個pattern對象調用match和search等方法 |
這種方式對於需要做大量相同匹配的Regex可以大大提高效率 |