日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

初識 Python 正則表達(dá)式

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-17 16:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

正則表達(dá)式是一個(gè)特殊的字符序列,用于判斷一個(gè)字符串是否與我們所設(shè)定的字符序列是否匹配,也就是說檢查一個(gè)字符串是否與某種模式匹配。

Python 自 1.5 版本起增加了re 模塊,它提供 Perl 風(fēng)格的正則表達(dá)式模式。re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。

下面通過實(shí)例,一步一步來初步認(rèn)識正則表達(dá)式。

比如在一段字符串中尋找是否含有某個(gè)字符或某些字符,通常我們使用內(nèi)置函數(shù)來實(shí)現(xiàn),如下:

# 設(shè)定一個(gè)常量
a = '兩點(diǎn)水|twowater|liangdianshui|草根程序員|ReadingWithU'

# 判斷是否有 “兩點(diǎn)水” 這個(gè)字符串,使用 PY 自帶函數(shù)

print('是否含有“兩點(diǎn)水”這個(gè)字符串:{0}'.format(a.index('兩點(diǎn)水') > -1))
print('是否含有“兩點(diǎn)水”這個(gè)字符串:{0}'.format('兩點(diǎn)水' in a))

輸出的結(jié)果如下:

是否含有“兩點(diǎn)水”這個(gè)字符串:True
是否含有“兩點(diǎn)水”這個(gè)字符串:True

那么,如果使用正則表達(dá)式呢?

剛剛提到過,Python 給我們提供了 re 模塊來實(shí)現(xiàn)正則表達(dá)式的所有功能,那么我們先使用其中的一個(gè)函數(shù):

re.findall(pattern, string[, flags])

該函數(shù)實(shí)現(xiàn)了在字符串中找到正則表達(dá)式所匹配的所有子串,并組成一個(gè)列表返回,具體操作如下:

import re

# 設(shè)定一個(gè)常量
a = '兩點(diǎn)水|twowater|liangdianshui|草根程序員|ReadingWithU'

# 正則表達(dá)式

findall = re.findall('兩點(diǎn)水', a)
print(findall)

if len(findall) > 0:
    print('a 含有“兩點(diǎn)水”這個(gè)字符串')
else:
    print('a 不含有“兩點(diǎn)水”這個(gè)字符串')

輸出的結(jié)果:

['兩點(diǎn)水']
a 含有“兩點(diǎn)水”這個(gè)字符串

從輸出結(jié)果可以看到,可以實(shí)現(xiàn)和內(nèi)置函數(shù)一樣的功能,可是在這里也要強(qiáng)調(diào)一點(diǎn),上面這個(gè)例子只是方便我們理解正則表達(dá)式,這個(gè)正則表達(dá)式的寫法是毫無意義的。為什么這樣說呢?

因?yàn)橛?Python 自帶函數(shù)就能解決的問題,我們就沒必要使用正則表達(dá)式了,這樣做多此一舉。而且上面例子中的正則表達(dá)式設(shè)置成為了一個(gè)常量,并不是一個(gè)正則表達(dá)式的規(guī)則,正則表達(dá)式的靈魂在于規(guī)則,所以這樣做意義不大。

那么正則表達(dá)式的規(guī)則怎么寫呢?先不急,我們一步一步來,先來一個(gè)簡單的,找出字符串中的所有小寫字母。首先我們在 findall 函數(shù)中第一個(gè)參數(shù)寫正則表達(dá)式的規(guī)則,其中 [a-z] 就是匹配任何小寫字母,第二個(gè)參數(shù)只要填寫要匹配的字符串就行了。具體如下:

import re

# 設(shè)定一個(gè)常量
a = '兩點(diǎn)水|twowater|liangdianshui|草根程序員|ReadingWithU'

# 選擇 a 里面的所有小寫英文字母

re_findall = re.findall('[a-z]', a)

print(re_findall)

輸出的結(jié)果:

['t', 'w', 'o', 'w', 'a', 't', 'e', 'r', 'l', 'i', 'a', 'n', 'g', 'd', 'i', 'a', 'n', 's', 'h', 'u', 'i', 'e', 'a', 'd', 'i', 'n', 'g', 'i', 't', 'h']

這樣我們就拿到了字符串中的所有小寫字母了。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

    90327
  • 正則表達(dá)式
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    3878
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    條件的執(zhí)行語句

    條件執(zhí)行語句大多在if語句中使用,也在使用關(guān)系運(yùn)算符(<,==,>等) 或者布爾值表達(dá)式(,!等)計(jì)算復(fù)雜表達(dá)式時(shí)使用。對于包含函數(shù)調(diào) 用的代碼片段,由于函數(shù)返回值會(huì)被
    發(fā)表于 12-12 08:25

    布爾表達(dá)式及范圍檢查

    一個(gè)常用的布爾表達(dá)式是用于判斷變量是否位于某個(gè)范圍內(nèi), 例如,檢查一個(gè)圖形坐標(biāo)是否位于一個(gè)窗口內(nèi): bool PointInRectangelArea (Point p, Rectangle
    發(fā)表于 12-12 07:08

    布爾表達(dá)式和零值比較處理

    處理器的標(biāo)志位在比較指令操作后被設(shè)置。標(biāo)志位同樣可以被諸如MOV、ADD、AND、MUL等 基本算術(shù)和裸機(jī)指令改寫。如果數(shù)據(jù)指令設(shè)置了標(biāo)志位,N和Z標(biāo)志位也將與結(jié)果與0比較一樣 進(jìn)行設(shè)置。N標(biāo)志表示結(jié)果是否是負(fù)值,Z標(biāo)志表示結(jié)果是否是0。 C語言中,處理器中的N和Z標(biāo)志位與下面的指令聯(lián)系在一起:有符號關(guān)系運(yùn) 算x<0,x>=0,x==0,x!=0;無符號關(guān)系運(yùn)算x==0,x!=0(或者x>0)。 C代碼中每次關(guān)系運(yùn)算符的調(diào)用,編譯器都會(huì)發(fā)出一個(gè)比較指令。 如果操作符是上面提到的,編譯器便會(huì)優(yōu)化掉比較指令。例如: int aFunction(int x, int y) { if (x + y < 0) return 1; else return 0; } 盡可能的使用上面的判斷方式,這可以在關(guān)鍵循環(huán)中減少比較指令的調(diào)用, 進(jìn)而減少代碼體積并提高代碼性能。C語言沒有借位和溢出位的概念,因此, 如果不借助匯編,不可能直接使用借位標(biāo)志C和溢出位標(biāo)志V。但編譯器支 持借位(無符號溢出),例如: int sum(int x, int y) { int res; res = x + y; if ((unsigned) res < (unsigned) x) // carry set?// res++; return res; }
    發(fā)表于 12-12 06:16

    C語言的分支結(jié)構(gòu)介紹

    1.簡單if語句 C語言中的分支結(jié)構(gòu)語句中的if條件語句。 簡單if語句的基本結(jié)構(gòu)如下: 代碼語言:javascript if(表達(dá)式) { 執(zhí)行代碼塊; } 其語義是:如果表達(dá)式的值為真,則執(zhí)行其后的語句,否則不執(zhí)行該語句。 注意:if()后面沒有分號,直
    發(fā)表于 11-25 07:48

    C語言強(qiáng)制類型轉(zhuǎn)換

    強(qiáng)制類型轉(zhuǎn)換是通過定義類型轉(zhuǎn)換運(yùn)算來實(shí)現(xiàn)的。其一般形式為: (數(shù)據(jù)類型) (表達(dá)式) 其作用是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型 在使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意以下問題: 數(shù)據(jù)類型
    發(fā)表于 11-24 06:32

    第4章 C語言基礎(chǔ)以及流水燈的實(shí)現(xiàn)(4.5 4.6)

    (表達(dá)式) ? ? ? ?{ ? ? ? ? ? ?循環(huán)體語句; ? ? ? ?} 在C語言里,通?!?b class='flag-5'>表達(dá)式”符合條件叫做真,不符合條件,叫做假。比如前邊i while(表達(dá)式)這個(gè)括號里的
    的頭像 發(fā)表于 11-06 11:21 ?533次閱讀

    inline ASM(內(nèi)聯(lián)匯編)的細(xì)節(jié)分享

    內(nèi)聯(lián)匯編,否則,仍然是帶有C++表達(dá)式的內(nèi)聯(lián)江編,此時(shí)\"instructionlist\"中的寄存器的寫法需要遵守相關(guān)的規(guī)定: 寄存器前必須使用兩個(gè)百分號(%%),而不是像
    發(fā)表于 10-31 09:11

    I1電流計(jì)算對不對?怎么推導(dǎo)不出來I1的表達(dá)式是圖中那樣

    I1電流計(jì)算對不對?怎么推導(dǎo)不出來I1的表達(dá)式是圖中那樣
    發(fā)表于 09-28 18:01

    labview如何使用VISA串口資源查找的正則表達(dá)式提取串口的資源名稱?

    如圖,如何利用VISA資源查找的正則表達(dá)式從很多串口當(dāng)中提取想要的目標(biāo)串口(Quectel USB AT Port這個(gè)串口)?
    發(fā)表于 07-07 17:20

    基礎(chǔ)篇3:掌握Python中的條件語句與循環(huán)

    不同的條件執(zhí)行不同的代碼塊。Python中的條件語句主要使用if、elif(else if的縮寫)和else關(guān)鍵字。 if語句 最簡單的條件語句是if語句,它的工作方式如下: 復(fù)制代碼 if 條件表達(dá)式
    發(fā)表于 07-03 16:13

    Cubeide1.18.1在線調(diào)試改變\"現(xiàn)場表達(dá)式\"中的值提示找不到地址,為什么?

    Cubeide1.18.1在線調(diào)試時(shí),在\"現(xiàn)場表達(dá)式\"中添加全局變量,然后改變其數(shù)值,Console窗口提示: Failed to read all registers
    發(fā)表于 06-12 06:50

    《ESP32S3 Arduino開發(fā)指南》第三章 C/C++語言基礎(chǔ)

    基礎(chǔ),由于篇幅有限,在此僅對C/C++語言基礎(chǔ)進(jìn)行簡單介紹。本章將分為如下9個(gè)小節(jié):3.1 數(shù)據(jù)類型3.2 運(yùn)算符3.3 表達(dá)式3.4 數(shù)組3.5 字符串3.6 注釋3.7 順序結(jié)構(gòu)3.8 選擇結(jié)構(gòu)
    發(fā)表于 06-10 09:20

    Cubeide1.18.1在線調(diào)試改變\"現(xiàn)場表達(dá)式\"中的值提示找不到地址是怎么回事?

    Cubeide1.18.1在線調(diào)試時(shí),在\"現(xiàn)場表達(dá)式\"中添加全局變量,然后改變其數(shù)值,Console窗口提示: Failed to read all registers
    發(fā)表于 06-10 08:26

    干貨分享 | 零基礎(chǔ)上手!TSMaster圖形信號表達(dá)式實(shí)操指南

    TSMaster軟件支持在圖形里面的信號表達(dá)式功能,主要用于多信號表達(dá)式運(yùn)算和顯示的場景。本文將以A2L中的標(biāo)定變量為例,介紹如何使用圖形中的信號表達(dá)式功能進(jìn)行多信號的后處理運(yùn)算和顯示。本文關(guān)鍵詞
    的頭像 發(fā)表于 06-06 20:03 ?1033次閱讀
    干貨分享 | 零基礎(chǔ)上手!TSMaster圖形信號<b class='flag-5'>表達(dá)式</b>實(shí)操指南

    Cubeide1.18.1在線調(diào)試改變\"現(xiàn)場表達(dá)式\"中的值提示找不到地址,怎么解決?

    Cubeide1.18.1在線調(diào)試時(shí),在\"現(xiàn)場表達(dá)式\"中添加全局變量,然后改變其數(shù)值,Console窗口提示: Failed to read all registers
    發(fā)表于 06-06 08:27
    曲水县| 祁东县| 清远市| 中西区| 渑池县| 浙江省| 河东区| 铜梁县| 鸡泽县| 黑水县| 高州市| 进贤县| 四会市| 八宿县| 巴塘县| 息烽县| 罗平县| 双鸭山市| 油尖旺区| 吉木乃县| 南雄市| 安塞县| 自治县| 页游| 康平县| 准格尔旗| 乐亭县| 钦州市| 攀枝花市| 龙南县| 旺苍县| 额济纳旗| 永川市| 九龙城区| 龙井市| 扎兰屯市| 镇坪县| 辽阳市| 西乡县| 定远县| 阳原县|