最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對(duì)python3中的RE(正則表達(dá)式)-詳細(xì)總結(jié)

 更新時(shí)間:2019年07月23日 16:49:31   作者:itw_wang  
今天小編就為大家分享一篇對(duì)python3中的RE(正則表達(dá)式)-詳細(xì)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1.引入正則模塊(Regular Expression)

要使用python3中的RE則必須引入 re模塊

import re #引入正則表達(dá)式

2.主要使用的方法 match(), 從左到右進(jìn)行匹配

#pattern 為要校驗(yàn)的規(guī)則
#str 為要進(jìn)行校驗(yàn)的字符串
result = re.match(pattern, str) 
 
#如果result不為None,則group方法則對(duì)result進(jìn)行數(shù)據(jù)提取

3. 正則表達(dá)式

1️⃣單字符匹配規(guī)則

字符 功能
.  匹配任意1個(gè)字符(除了\n)
[]  匹配[]中列舉的字符
\d  匹配數(shù)字,也就是0-9
\D  匹配非數(shù)字,也就是匹配不是數(shù)字的字符
\s  匹配空白符,也就是 空格\tab
\S  匹配非空白符,\s取反
\w  陪陪單詞字符, a-z, A-Z, 0-9, _
\W  匹配非單詞字符, \w取反

2️⃣表示數(shù)量的規(guī)則

字符 功能
*  匹配前一個(gè)字符出現(xiàn)0次多次或者無(wú)限次,可有可無(wú),可多可少
+  匹配前一個(gè)字符出現(xiàn)1次多次或則無(wú)限次,直到出現(xiàn)一次
?  匹配前一個(gè)字符出現(xiàn)1次或者0次,要么有1次,要么沒(méi)有
{m}  匹配前一個(gè)字符出現(xiàn)m次
{m,} 匹配前一個(gè)字符至少出現(xiàn)m次
{m,n} 匹配前一個(gè)字符出現(xiàn)m到n次
 

例一: 驗(yàn)證手機(jī)號(hào)碼是否符合規(guī)則(不考慮邊界問(wèn)題)

#首先清楚手機(jī)號(hào)的規(guī)則
#1.都是數(shù)字 2.長(zhǎng)度為11 3.第一位是1 4.第二位是35678中的一位
 
pattern = "1[35678]\d{9}"
phoneStr = "18230092223"
 
result = re.match(pattern, phoneStr)
result.group()
 
#執(zhí)行結(jié)果如下圖:

4. 原始字符串raw, 先來(lái)看如下實(shí)例:

在上圖中: 在給str賦值"\nabc"前加上"r"之后,python解釋器會(huì)自動(dòng)給str的值"\nabc"在加上一個(gè)"\".

使str在被打印的時(shí)候,能夠保持原始字符串的值"\nabc"打印出來(lái).

例二: (原始字符串在正則表達(dá)式中的應(yīng)用)

假若沒(méi)有原始自付出r,則我們就要進(jìn)行如下的操作: 給pattern加上雙倍的"\"以避免轉(zhuǎn)義字符中減少"\".會(huì)比較麻煩

當(dāng)我們使用r原始字符串時(shí),就不必考慮字符串的轉(zhuǎn)移問(wèn)題,更易集中解決字符匹配問(wèn)題.

5. 表示邊界

字符 功能
^  匹配字符串開(kāi)頭
$  匹配字符串結(jié)尾
\b  匹配一個(gè)單詞的邊界
\B  匹配非單詞邊界

例三: 邊界(制定規(guī)則來(lái)匹配str="ho ve r")

import re
 
#定義規(guī)則匹配str="ho ve r"
#1. 以字母開(kāi)始
#2. 中間有空字符
#3. ve兩邊分別限定匹配單詞邊界
 
pattern = r"^\w+\s\bve\b\sr"
str = "ho ve r"
result = re.match(pattern, str)
result.group()

6. 匹配分組

字符  功能
|   匹配左右任意一個(gè)表達(dá)式
(ab)  將括號(hào)中字符作為一個(gè)分組
\num  引用分組num匹配到的字符串
(?P<name>) 分組起別名
(?P=name) 引用別名為name分組匹配到的字符串

例四: 匹配出0-100之間的數(shù)字

import re
 
#匹配出0-100之間的數(shù)字
#首先:正則是從左往又開(kāi)始匹配
#經(jīng)過(guò)分析: 可以將0-100分為三部分
#1. 0  "0$"
#2. 100  "100$"
#3. 1-99  "[1-9]\d{0,1}$"
#所以整合如下
 
pattern = r"0$|100$|[1-9]\d{0,1}$"
#測(cè)試數(shù)據(jù)為0,3,27,100,123
result = re.match(pattern, "27")
result.group()
 
#將0考慮到1-99上,上述pattern還可以簡(jiǎn)寫(xiě)為:pattern=r"100$|[1-9]?\d{0,1}$"
#測(cè)試結(jié)果如下圖:

例五: 匹配分組,獲取頁(yè)面中的<h1>標(biāo)簽中的內(nèi)容

import re
#匹配分組,獲取頁(yè)面<h1>標(biāo)簽中的內(nèi)容, 爬蟲(chóng)的時(shí)候會(huì)用到
 
str = "<h1>hello world!<h1>"
pattern = r"<h1>(.*)</h1>"
result = re.match(pattern, str)
result.group()
 
#執(zhí)行如下圖

例六: 分組引用, 精確獲取多個(gè)標(biāo)簽內(nèi)的內(nèi)容

import re
 
#引用分組,精確獲取多個(gè)標(biāo)簽內(nèi)的內(nèi)容
#"\1"是對(duì)第一個(gè)分組的引用,同理......
 
str = "<span><h1>hello world!</h1></span>"
pattern = r"<(.+)><(.+)>.*</\2></\1>"
result = re.match(pattern, str)
result.groups()
 
#執(zhí)行如下圖:

例七-2:分組起別名

import re
 
#分組起別名
 
str = "<span><h1>hello world!</h1></span>"
pattern = "<(?P<key1>.+)><(?P<key2>.+)>(?P<nr>.*)</(?P=key2)></(?P=key1)>"
result = re.match(pattern, str)
result.groups()
 
#執(zhí)行如下圖:

以上這篇對(duì)python3中的RE(正則表達(dá)式)-詳細(xì)總結(jié)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python模塊相關(guān)知識(shí)點(diǎn)小結(jié)

    Python模塊相關(guān)知識(shí)點(diǎn)小結(jié)

    這篇文章主要介紹了Python模塊相關(guān)知識(shí)點(diǎn),總結(jié)分析了Python模塊的功能、原理、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法小結(jié)【4種方法】

    Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法小結(jié)【4種方法】

    這篇文章主要介紹了Python實(shí)現(xiàn)去除列表中重復(fù)元素的方法,結(jié)合實(shí)例形式總結(jié)分析了Python列表去重的4種實(shí)現(xiàn)方法,涉及Python針對(duì)列表的遍歷、判斷、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Pandas提取數(shù)據(jù)的三種方式

    Pandas提取數(shù)據(jù)的三種方式

    本文主要介紹了Pandas提取數(shù)據(jù)的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Django 忘記管理員或忘記管理員密碼 重設(shè)登錄密碼的方法

    Django 忘記管理員或忘記管理員密碼 重設(shè)登錄密碼的方法

    今天小編就為大家分享一篇Django 忘記管理員或忘記管理員密碼 重設(shè)登錄密碼的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì)的處理方案

    Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì)的處理方案

    FastAPI 是一個(gè)非?,F(xiàn)代化和高效的框架,非常適合用于構(gòu)建高性能的 API,FastAPI 是一個(gè)用于構(gòu)建 API 的現(xiàn)代、快速(高性能)web 框架,基于 Python 類(lèi)型提示,這篇文章主要介紹了Python中FastAPI項(xiàng)目使用 Annotated的參數(shù)設(shè)計(jì),需要的朋友可以參考下
    2024-08-08
  • Python爬取豆瓣視頻信息代碼實(shí)例

    Python爬取豆瓣視頻信息代碼實(shí)例

    這篇文章主要介紹了Python爬取豆瓣視頻信息代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 解析Python中的eval()、exec()及其相關(guān)函數(shù)

    解析Python中的eval()、exec()及其相關(guān)函數(shù)

    本篇文章主要介紹了解析Python中的eval()、exec()及其相關(guān)函數(shù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Python中django學(xué)習(xí)心得

    Python中django學(xué)習(xí)心得

    這篇文章主要介紹了Python中django Web應(yīng)用框架的學(xué)習(xí)做了總結(jié)并把心得體會(huì)寫(xiě)了一下,大家一起參考下吧。
    2017-12-12
  • Anaconda中導(dǎo)出環(huán)境的實(shí)現(xiàn)步驟

    Anaconda中導(dǎo)出環(huán)境的實(shí)現(xiàn)步驟

    在 Anaconda 中導(dǎo)出環(huán)境是一種常用的做法,可以將當(dāng)前的環(huán)境配置導(dǎo)出到一個(gè)文件中,本文主要介紹了Anaconda中導(dǎo)出環(huán)境的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值
    2024-05-05
  • 在Django中創(chuàng)建動(dòng)態(tài)視圖的教程

    在Django中創(chuàng)建動(dòng)態(tài)視圖的教程

    這篇文章主要介紹了在Django中創(chuàng)建動(dòng)態(tài)視圖的教程,Django是Python重多人氣框架中最為著名的一個(gè),需要的朋友可以參考下
    2015-07-07

最新評(píng)論

凤城市| 仲巴县| 湟中县| 松江区| 大新县| 富蕴县| 乡宁县| 冀州市| 拜城县| 五华县| 分宜县| 阳高县| 剑川县| 安义县| 阜城县| 罗甸县| 襄汾县| 江油市| 海淀区| 仙游县| 甘肃省| 随州市| 乃东县| 上犹县| 廊坊市| 鄂尔多斯市| 五大连池市| 康定县| 浦北县| 高陵县| 山丹县| 房山区| 当涂县| 南乐县| 商水县| 都江堰市| 工布江达县| 宣武区| 乌兰浩特市| 六枝特区| 姚安县|