正則表達式re(python)

python的re

元字符metacharacter
. 除換行符外的任意一個字符
[abcd] 集合里的任意一個字符
[^abcd]除集合里的字符的任意一個字符
[a-z] 字符范圍,范圍內的任意一個字符
\b 單詞的邊界 例:\ba在文本中找到以a開頭的字符,a\b以a結尾的字符
\B 不匹配單詞的邊界 例:t\B包含t不以t結尾的字符,\Bt含有t不以t開頭的字符
\d 任意一位0-9的數字
\D 一位非數字
\s 一位空白字符,包括換行符、制表符、空格
\S 一位非空白字符
\w 匹配[a-zA-Z0-9],包括中文
\W 匹配\w之外的字符
重復
* 重復0次或多次
+ 重復至少一次
?重復0次或1次
{n} 重復n次
{n,} 重復至少n次
{n,m} 重復n-m次

x|y 匹配x或者y
(pattern) 分組,分配組號,從1開始
(?:pattern) 去掉分組,只為改變優先級
(?<name>exp) 給分組命名
零寬斷言
(?=exp) 斷言exp一定在匹配的右邊出現
(?<=exp) 斷言exp一定在匹配的左邊出現
(?!exp) 斷言exp一定不在匹配的右邊出現
(?<!exp) 斷言exp一定不在匹配的左邊出現
斷言不占分組號

貪婪和非貪婪
默認是貪婪模式,盡可能多的取
*?匹配任意次,盡可能少重復
+?匹配至少1次,盡可能少重復
?? 匹配0次或1次,盡可能少重復
{n,}? 匹配至少n次,盡可能少重復
{n,m}? 匹配至少n次,至多m次,盡可能少重復

單行模式和多行模式
單行模式:.可以匹配所有字符,包括換行符。
^表示整個字符串的開頭,$整個字符串的結尾
多行模式:.不包括換行符
^表示行首,$表示行位

 

python的RE
使用re模塊(import re)
re.M多行模式,re.S單行模式,re.I忽略大小寫
編譯:re.compile(pattern,flags=0)
regex=re.compile(pattern,flags=0)
單詞匹配
re.match(pattern,string,flags=0)
regex.match(string,[2,4])
匹配從字符串的開頭匹配,regex可以重新設定開始和結束位置,返回match對象

re.search(pattern,string,flags=0)
regex.search(string,[2,4])
從頭搜索直到第一個匹配,regex可以重新設定開始和結束位置,返回match對象
re.fullnmath(pattern,string,flags=0)
regex.fullmatch(string,[2,4])
整個字符串和正則表達式匹配

全部匹配
re.findall(pattern,string,flags=0)
regex.findall(string,[2,4])
整個字符串,從左至右匹配,返回所有匹配項的列表
re.finditer(pattern,string,flags=0)
regex.finditer(string,[2,4])
整個字符串,從左至右匹配,返回所有匹配項,返回迭代器
每次迭代返回的是match對象

匹配替換
re.sub(pattern,replacement,string,count=0,flags=0)
regex.sub(replacement,string,count=0)
使用pattern對字符串string進行匹配,對匹配項使用replacement替換,
replacement可以是string,bytes,function。

re.subn(pattern,replacement,string,count=0,flags=0)
regex.subn(replacement,string,count=0)
同sub 返回一個元組(new_string,number_of_subs_made)

分割字符串
re.split(pattern,string,maxsplit=0,flags=0)

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88245

(0)
10590628461059062846
上一篇 2017-11-06 19:37
下一篇 2017-11-07 09:33

相關推薦

  • bash工作特性之命令執行狀態返回值與命令行展開概述

    bash工作特性之命令執行狀態返回值與命令行展開概述 bash是什么? shell是一種用戶接口程序,提供了用戶與內核進行交互的接口。shell可以分為兩類:一類為GUI,即用戶圖形界面;另一類為CLI,即命令行接口,將用戶的命令送入到內核去執行,大多數發行版中最常用的就是bash。 bash特性 命令執行狀態返回值 bash通過狀態返回值來輸出結果: 命令…

    Linux干貨 2017-07-09
  • Centos下實現多網卡綁定

    實現多網卡綁定在Centos6和Centos7可采用bonding方式,Centos7上team網絡組也可實現,并且功能更強大。 Linux bonding 模塊提供一種將多個網卡聚合成一塊邏輯捆綁網卡的實現方法。 捆綁的網卡擁有多種模式,根據模式的特性,可實現網絡負載均衡,網絡冗余切換,提高網絡吞吐量等功能。 大多流行Linux發行版都已裝載bonding…

    Linux干貨 2016-09-13
  • Linux創建CA和申請認證

    Linux創建CA和申請認證 背景: 在學習Linux運維中,學習到了CA的創建和申請認證,為了加深對CA的理解,這里做一個創建CA和申請認證的實驗并記錄下來供以后回顧。 介紹: 什么是CA認證? 電子商務認證授權機構(CA, Certificate Authority),也稱為電子商務認證中心,是負責發放和管理數字證書的權威機構,并作為電子商務交易中受信任…

    2017-09-09
  • linux 網絡管理命令 SS的使用詳則

    SS命令 ss命令用來顯示處于活動狀態的套接字信息,ss迷路可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。但ss的優勢在于它能夠顯示更多更詳細的有關TCO和連接狀態信息,而且比netstat更快速更高效。 當服務器的socket連接數量變得非常大時,無論是使用netest命令還是直接  cat/proc/net/tcp ?!?/p>

    2017-08-19
  • 文本處理三劍客-sed

    1.文本處理三劍客-sed #sed語法: sed  [OPTION]…  {script-only-if-no-other-script}        [input-file]… sed理解:是一種流編輯器,一次處理一行內容,處理時把當前…

    Linux干貨 2016-08-12
  • 細說CP使用

    cp詳細用法和常用選項

    Linux干貨 2017-11-26
欧美性久久久久