国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中正則表達式的詳細教程

2020-02-23 01:02:11
字體:
來源:轉載
供稿:網友

1.了解正則表達式

    正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。

正則表達式是用來匹配字符串非常強大的工具,在其他編程語言中同樣有正則表達式的概念,Python同樣不例外,利用了正則表達式,我們想要從返回的頁面內容提取出我們想要的內容就易如反掌了。

    正則表達式的大致匹配過程是:
    1.依次拿出表達式和文本中的字符比較,
    2.如果每一個字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。
    3.如果表達式中有量詞或邊界,這個過程會稍微有一些不同。

2.正則表達式的語法規則

下面是Python中正則表達式的一些匹配規則,圖片資料來自CSDN

2015430160820157.png (799×1719)

3.正則表達式相關注解
(1)數量詞的貪婪模式與非貪婪模式

正則表達式通常用于在文本中查找匹配的字符串。Python里數量詞默認是貪婪的(在少數語言里也可能是默認非貪婪),總是嘗試匹配盡可能多的字 符;非貪婪的則相反,總是嘗試匹配盡可能少的字符。例如:正則表達式”ab*”如果用于查找”abbbc”,將找到”abbb”。而如果使用非貪婪的數量 詞”ab*?”,將找到”a”。

注:我們一般使用非貪婪模式來提取。
(2)反斜杠問題

與大多數編程語言相 同,正則表達式里使用”/”作為轉義字符,這就可能造成反斜杠困擾。假如你需要匹配文本中的字符”/”,那么使用編程語言表示的正則表達式里將需要4個反 斜杠”////”:前兩個和后兩個分別用于在編程語言里轉義成反斜杠,轉換成兩個反斜杠后再在正則表達式里轉義成一個反斜杠。

Python里的原生字符串很好地解決了這個問題,這個例子中的正則表達式可以使用r”//”表示。同樣,匹配一個數字的”//d”可以寫成r”/d”。有了原生字符串,媽媽也不用擔心是不是漏寫了反斜杠,寫出來的表達式也更直觀勒。
4.Python Re模塊

Python 自帶了re模塊,它提供了對正則表達式的支持。主要用到的方法列舉如下
 

#返回pattern對象re.compile(string[,flag]) #以下為匹配所用函數re.match(pattern, string[, flags])re.search(pattern, string[, flags])re.split(pattern, string[, maxsplit])re.findall(pattern, string[, flags])re.finditer(pattern, string[, flags])re.sub(pattern, repl, string[, count])re.subn(pattern, repl, string[, count])

在介紹這幾個方法之前,我們先來介紹一下pattern的概念,pattern可以理解為一個匹配模式,那么我們怎么獲得這個匹配模式呢?很簡單,我們需要利用re.compile方法就可以。例如

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 响水县| 石台县| 乌什县| 宜州市| 临桂县| 常山县| 天峨县| 黑山县| 安陆市| 镇巴县| 葫芦岛市| 达拉特旗| 奎屯市| 峡江县| 昌平区| 黑龙江省| 呼玛县| 尤溪县| 获嘉县| 德州市| 闽侯县| 合山市| 大冶市| 临夏市| 抚州市| 静海县| 长治市| 平凉市| 六枝特区| 元阳县| 沂水县| 明星| 安泽县| 中阳县| 拉孜县| 石狮市| 班玛县| 承德县| 屯留县| 建始县| 响水县|