PythonRegex

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.