日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Py之re:re正則表達(dá)式庫的簡介、入門、使用方法之詳細(xì)攻略

 Four兄 2019-08-29

目錄

re正則表達(dá)式庫的簡介

1、正則表達(dá)式元字符

re正則表達(dá)式庫的入門

1、re.match函數(shù)

2、re.search方法

3、檢索和替換

4、re.compile 函數(shù)

re正則表達(dá)式庫的使用方法

1、去掉字符串中的所有括號及括號內(nèi)容


re正則表達(dá)式庫的簡介

      正則表達(dá)式在很多語言里都支持,python也不例外,re模塊就是正則表達(dá)式的應(yīng)用  正則表達(dá)式對字符串的邏輯操作,主要是對字符串的一種過濾,用“元字符” 與“普通字符”組成一個字符串規(guī)則對已知的字符串或文本過濾出自己想要的字符串。

1、正則表達(dá)式元字符

\

轉(zhuǎn)義字符,將后邊緊跟著的字符變成特殊字符,或?qū)⒑筮叺奶厥庾址兂善胀ㄗ址?/p>

如:在正則表達(dá)式中,'\n'換行符,'\\'則代表一個普通字符'\'

^匹配第一行行首,匹配多行需要傳參 flags=re.MULTILINE
$匹配最后一行行尾,匹配多行需要傳參 flags=re.MULTILINE
.除'\r''\n'外,匹配任意的單個字符,要使'.'匹配換行符,flags=re.DOTALL
|或,如 'aaa|bbb|ccc',表示'aaa','bbb','ccc'三選一
?匹配前邊的子表達(dá)式0次或1次,等價于{0,1}
+匹配前邊的子表達(dá)式1次或多次,等價于{1,}
*匹配前邊的子表達(dá)式0次或多次,,等價于{0,}
{}{n}匹配前邊的子表達(dá)式n次,{n,}匹配前邊的子表達(dá)式至少n次 即:>= n,{n,m}匹配前邊的子表達(dá)式n~m次,即:n<= 表達(dá)式 <=m
()分組,從1開始,從左至右數(shù)'('為第幾組,下標(biāo)0為全部分組
[]

字符集匹配[]中的人一個字符,之匹配一次,如[abc]:表示'a','b','c'三選一。也可以給定范圍(必須是連續(xù)的才行),如[a-z]:表示a到z任意一個字符。

還可以取反,如[^abc]:除'a','b','c'外的任意字符。注:[]中只有'^','-','\'三個特殊字符,其中'\'代表轉(zhuǎn)義字符,其它的都代表原本普通的字符,如:[.]只是一個普通的點(diǎn)字符

注:要使用元字符本身的普通字符,請使用轉(zhuǎn)義字符轉(zhuǎn)義一下,如 :'\(' 在正則表達(dá)式中代表普通給'('字符,其它的雷同

re正則表達(dá)式庫的入門

1、re.match函數(shù)

re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。
語法:re.match(pattern, string, flags=0)
參數(shù)說明

  • pattern    匹配的正則表達(dá)式

  • string    要匹配的字符串。

  • flags    標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等。

2、re.search方法

re.search 掃描整個字符串并返回第一個成功的匹配。
語法:re.search(pattern, string, flags=0)
參數(shù)說明

  • pattern    匹配的正則表達(dá)式

  • string    要匹配的字符串。

  • flags    標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等等。

3、檢索和替換

Python 的 re 模塊提供了re.sub用于替換字符串中的匹配項。
語法:re.sub(pattern, repl, string, count=0, flags=0)
參數(shù)

  • pattern : 正則中的模式字符串。

  • repl : 替換的字符串,也可為一個函數(shù)。

  • string : 要被查找替換的原始字符串。

  • count : 模式匹配后替換的最大次數(shù),默認(rèn) 0 表示替換所有的匹配。

4、re.compile 函數(shù)

compile 函數(shù)用于編譯正則表達(dá)式,生成一個正則表達(dá)式( Pattern )對象,供 match() 和 search() 這兩個函數(shù)使用。
語法:re.compile(pattern[, flags])
參數(shù)

  • pattern : 一個字符串形式的正則表達(dá)式

  • flags : 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體參數(shù)為:

    • re.I 忽略大小寫

    • re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴于當(dāng)前環(huán)境

    • re.M 多行模式

    • re.S 即為 . 并且包括換行符在內(nèi)的任意字符(. 不包括換行符)

    • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴于 Unicode 字符屬性數(shù)據(jù)庫

    • re.X 為了增加可讀性,忽略空格和 # 后面的注釋

re正則表達(dá)式庫的使用方法

1、去掉字符串中的所有括號及括號內(nèi)容

  1. #去掉字符串中的所有括號及括號內(nèi)容
  2. import re
  3. str='今天(1)天氣{1}非常好啊,[1]是的。'
  4. str_sub = re.sub(u'\\(.*?\\)|\\{.*?}|\\[.*?]', '', str)
  5. print(str_sub)
  6. '今天天氣非常好啊,是的。'

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多