標籤:log 空白 括弧 子串 定時 [] efault 迭代 name
方法
| 方法 |
描述 |
| re.compile(pattern[,flag]) |
編譯Regex,產生Pattern執行個體 |
| re.match(pattern, string, flags=0) |
嘗試從字串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,就返回None;如果匹配成功,則可以通過返回結果的group(num)或groups()方法擷取匹配的運算式 |
| re.search(pattern, string, flags=0) |
掃描整個字串並返回第一個成功的匹配,如果不能匹配,就返回None;如果匹配成功,則可以通過返回結果的group(num)或groups()方法擷取匹配的運算式 |
| re.sub(pattern, repl, string, count=0, flags=0) |
替換字串中的匹配項,其中repl為替換的字串,也可以為一個函數 |
可選標誌
| 修飾符 |
描述 |
| re.l |
使匹配對大小寫不敏感 |
re.L |
做本地化識別匹配 |
| re.M |
多行匹配,影響^和$ |
| re.S |
使.匹配包含換行在內的所有字元 |
| re.U |
根據Unicode字元集解析字元。這個標誌影響\w,\W,\b,\B |
| re.X |
該標誌通過給予更靈活的格式以便將Regex寫得更易於理解 |
元素
| 模式 |
描述 |
| ^ |
匹配字串的開頭 |
| $ |
匹配字串的末尾 |
| . |
匹配除分行符號之外的任一字元。當re.DOTALL標記被指定時,則可以匹配包括分行符號的任一字元 |
| [...] |
表示一組字元 |
| [^...] |
表示不在[]中的字元 |
| re* |
匹配0個或多個運算式 |
| re+ |
匹配1個或多個運算式 |
| re? |
匹配0個或1個由前面的Regex定義的片段,非貪婪方式 |
| re{n} |
精確匹配n個前面的運算式 |
| re{n,} |
精確匹配n個前面的運算式 |
| re{n,m} |
匹配n到m次由前面的Regex定義的判斷,貪婪方式 |
| a|b |
匹配a或b |
| (re) |
匹配括弧內的運算式,也表示一個組 |
| (?imx) |
Regex包含三種可選標誌imx,隻影響括弧中的匹配 |
| (?-imx) |
關閉imx可選標誌,隻影響括弧中的匹配 |
| (?:re) |
類似(...),但是不表示一個組 |
| (?imx:re) |
在括弧中使用imx可選標誌 |
| (?-imx:re) |
在括弧中不使用imx可選標誌 |
| (?#...) |
注釋 |
| (?=re) |
之後的字串內容需要匹配運算式才能成功匹配,不消耗字串內容 |
| (?!re) |
之後的字串內容需要不匹配運算式才能成功匹配,不消耗字串內容 |
| (?<=...) |
之前的字串內容需要匹配運算式才能成功匹配,不消耗字串內容 |
| (?<!...) |
之前的字串內容需要不匹配運算式才能成功匹配,不消耗字串內容 |
| (?>re) |
匹配的獨立模式,省去回溯 |
| \w |
匹配字母數字及底線 |
| \W |
匹配非字母數字及底線 |
| \s |
匹配任意空白字元,等價於[\t\n\r\f] |
| \S |
匹配任意非Null 字元 |
| \d |
匹配任一數字,等價於[0-9] |
| \D |
匹配任意非數字 |
| \A |
匹配字串開始 |
| \Z |
匹配字串結束,如果存在換行,只匹配到換行前的結束字串 |
| \z |
匹配字串結束 |
| \G |
匹配最後匹配完成的位置 |
| \b |
匹配一個單詞邊界,也就是指單詞和空格間的位置 |
| \B |
匹配非單詞邊界 |
| \1...\9 |
匹配第n個分組的內容 |
| \10 |
匹配第n個分組的內容,也可能指的是八進位字元碼的運算式 |
| (?P<name>...) |
分組,除了原有的編號外再指定一個額外的別名 |
| (?p=name) |
引用別名為name的分組匹配到的字串 |
| (?(id/name)yes-pattern|no-pattern) |
如果標號為id/name的組匹配到字元,則需要匹配yes-pattern,否則需要匹配弄-pattern。|no-pattern可以省略 |
Pattern
| 成員 |
描述 |
| pattern |
編譯時間用的運算式字串 |
| flags |
編譯時間使用的匹配模式,數字形式 |
| groups |
運算式中分組的數量 |
| groupindex |
以運算式中有別名的組的別名為鍵,以該組對應的編號的值為字典,沒有別名的組不包含在內 |
| match(string[,pos[,endpos]]) |
從string的pos下標處開始嘗試匹配pattern,到endpos下標處為止 |
| search(string[,pos[,endpos]]) |
從string的pos下標處開始嘗試匹配pattern,到endpos下標處為止 |
| split(string[,maxsplit]) |
按照能夠匹配的子串將string分割後返回列表,maxsplit用於指定最大分割次數,不指定將全部分割 |
| findall(string[,pos[,endpos]]) |
搜尋string,以列表的形式返回全部能匹配的子串 |
| finditer(string[,pos[,endpos]]) |
搜尋string,返回一個順序訪問每一個匹配結果的迭代器 |
| sub(repl,string[,count]) |
使用repl替換string中的每一個匹配的子串後返回替換後的字串。當repl是一個字串時,可以引用分組,單不能使用編號0;當repl是一個方法時,這個方法應當只接受一個參數(Match對象),並返回一個字串用於替換(返回的字串中不能再引用分組) |
| subn(repl,string[,count]) |
返回(sub(repl,string[,count],替換次數) |
Match
| 成員 |
描述 |
| string |
匹配時使用的文本 |
| re |
匹配時使用的Pattern對象 |
| pos |
文本中Regex開始搜尋的索引 |
| endpos |
文本中Regex結束搜尋的索引 |
| lastindex |
最後一個被捕獲的分組在文本中的索引。如果沒有被捕獲的分組,將為None |
| lastgroup |
最後一個被捕獲的分組的別名。如果這個分組沒有別名或者沒有被捕獲的分組,將為None |
| group(index) |
獲得一個或多個分組解惑的字串 |
| groups([default]) |
以元組形式返回全部分組截獲的字串。default表示沒有截獲字串的組以這個值代替,預設為None |
| groupdict([default]) |
返回以有別名的組的別名為鍵、以該組結果的子串為值的字典,沒有別名的組不包含在內 |
| start([group]) |
返回指定的組截獲的子串在string的起始索引 |
| end([group]) |
返回指定的組截獲的子串在string中的結束索引 |
| span([group]) |
返回(start(group),end(group)) |
| expand(template) |
將匹配到的分組代入template然後返回。template中可以使用\id或\g<id>、\g<name>引用分組,但不能使用編號0 |
PythonRegex