精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

初識 Python 正則表達式

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-17 16:44 ? 次閱讀

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

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

下面通過實例,一步一步來初步認識正則表達式。

比如在一段字符串中尋找是否含有某個字符或某些字符,通常我們使用內置函數來實現,如下:

# 設定一個常量
a = '兩點水|twowater|liangdianshui|草根程序員|ReadingWithU'

# 判斷是否有 “兩點水” 這個字符串,使用 PY 自帶函數

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

輸出的結果如下:

是否含有“兩點水”這個字符串:True
是否含有“兩點水”這個字符串:True

那么,如果使用正則表達式呢?

剛剛提到過,Python 給我們提供了 re 模塊來實現正則表達式的所有功能,那么我們先使用其中的一個函數:

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

該函數實現了在字符串中找到正則表達式所匹配的所有子串,并組成一個列表返回,具體操作如下:

import re

# 設定一個常量
a = '兩點水|twowater|liangdianshui|草根程序員|ReadingWithU'

# 正則表達式

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

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

輸出的結果:

['兩點水']
a 含有“兩點水”這個字符串

從輸出結果可以看到,可以實現和內置函數一樣的功能,可是在這里也要強調一點,上面這個例子只是方便我們理解正則表達式,這個正則表達式的寫法是毫無意義的。為什么這樣說呢?

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

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

import re

# 設定一個常量
a = '兩點水|twowater|liangdianshui|草根程序員|ReadingWithU'

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

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

print(re_findall)

輸出的結果:

['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']

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

審核編輯:符乾江

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

    關注

    56

    文章

    4783

    瀏覽量

    84473
  • 正則表達式
    +關注

    關注

    0

    文章

    26

    瀏覽量

    3477
收藏 人收藏

    評論

    相關推薦

    Verilog表達式的位寬確定規(guī)則

    很多時候,Verilog中表達式的位寬都是被隱式確定的,即使你自己設計了位寬,它也是根據規(guī)則先確定位寬后,再擴展到你的設計位寬,這常常會導致結果產生意想不到的錯誤。
    的頭像 發(fā)表于 10-22 15:41 ?264次閱讀
    Verilog<b class='flag-5'>表達式</b>的位寬確定規(guī)則

    nginx中的正則表達式和location路徑匹配指南

    前言,我這里驗證的nginx-v1.23.2單機環(huán)境下的nginx中的正則表達式、location路徑匹配規(guī)則和優(yōu)先級。
    的頭像 發(fā)表于 09-29 16:02 ?494次閱讀
    nginx中的<b class='flag-5'>正則表達式</b>和location路徑匹配指南

    求助,以下恒流源電路Io的計算表達式怎么計算?

    這個恒流源電路Io的計算表達式怎么計算,求給出詳細計算過程
    發(fā)表于 08-22 08:16

    TestStand表達式中常用的語法規(guī)則和運算符使用

    TestStand也有自己的語言嘛?在回答這個問題之前大家可以想一下在使用TestStand時有一個和語言密切相關的屬性。沒錯那就是表達式(Expressions),在這篇文章中,小編將以Q&A的方式來帶著大家來理解并熟悉TestStand表達式中較為常用的一些語法規(guī)則以
    的頭像 發(fā)表于 08-15 18:10 ?1137次閱讀
    TestStand<b class='flag-5'>表達式</b>中常用的語法規(guī)則和運算符使用

    鴻蒙原生應用元服務開發(fā)-倉頡基本概念表達式(二)

    三、do-while 表達式 do-while 表達式的基本形式為: do { 循環(huán)體 } while (條件) 其中“條件”是布爾類型表達式,“循環(huán)體”是一個代碼塊。do-while 表達式
    發(fā)表于 08-09 14:26

    鴻蒙原生應用元服務開發(fā)-倉頡基本概念表達式(一)

    在一些傳統(tǒng)編程語言中,一個表達式由一個或多個操作數(operand)通過零個或多個操作符(operator)組合而成,表達式總是隱含著一個計算過程,因此每個表達式都會有一個計算結果,對于只有操作數而
    發(fā)表于 08-08 10:27

    求助,有關表達式選項卡(ADS)的問題求解

    你好。 我看不到表達式選項卡中的某些變量值。 數組的大小顯然是 256,但我最多只能看到 100。 請問問題出在哪里? 謝謝。
    發(fā)表于 06-03 06:23

    mapgis屬性篩選表達式

    篇文章中,我們將詳細討論MapGIS的屬性篩選表達式,包括語法、操作符和函數等。 屬性篩選表達式是一種在MapGIS中用于指定要素選擇條件的代碼。它由一組操作符、函數和屬性字段組成,用于描述要篩選的要素的特征。在MapGIS中,屬性篩選
    的頭像 發(fā)表于 02-25 10:58 ?1501次閱讀

    西門子博途的算術表達式

    算術表達式既可以是一個數字值,也可以是由帶有算術運算符的兩個值或表達式組合而成。 算術運算符可以處理當前 CPU 所支持的各種數據類型。如果在該運算中有 2 個操作數,那么可根據以下條件來確定結果的數據類型。
    的頭像 發(fā)表于 01-24 11:36 ?949次閱讀

    你還不會gvim正則表達式?一文搞懂!

    gvim正則表達式常在命令行模式下使用,一般用于文本文件字符串的替換、刪除等操作。
    的頭像 發(fā)表于 01-19 16:47 ?1114次閱讀

    rs觸發(fā)器的邏輯表達式

    邏輯表達式是描述邏輯關系的符號表示,可以用于定義和描述各種電路和邏輯操作。在邏輯電路中,RS觸發(fā)器是一種基本的存儲器元件,也被稱為鎖存器。 RS觸發(fā)器是由兩個與門組成的,其輸出互相連接,形成一個反饋
    的頭像 發(fā)表于 01-12 14:09 ?2922次閱讀

    更快的tsv解析代碼分享

    使用正則解析的正則表達式很簡單, 這里直接給代碼, 為了避免重復編譯正則表達式和重新分配內存報錯結果列表, 這里將她們作為參數傳給解析函數.
    的頭像 發(fā)表于 12-29 09:45 ?408次閱讀
    更快的tsv解析代碼分享

    GVIM正則表達式介紹和使用示例

    的Ken Thompson借用這個概念并將它應用到了文本編輯器中。后面正則表達式的說法進入到了大家常用的vi、vim、gvim當中。
    的頭像 發(fā)表于 12-18 15:09 ?1190次閱讀
    GVIM<b class='flag-5'>正則表達式</b>介紹和使用示例

    一文詳解Java表達式引擎選型

    AviatorScript 是一門高性能、輕量級寄宿于 JVM 之上的腳本語言。AviatorScript 可將表達式編譯成字節(jié)碼。它原來的定位一直只是一個表達式引擎,不支持 if/else 條件
    的頭像 發(fā)表于 12-06 10:57 ?1826次閱讀
    一文詳解Java<b class='flag-5'>表達式</b>引擎選型

    如何從一個簡單的數學表達式創(chuàng)建一個Saber模型?

    如何從一個簡單的數學表達式創(chuàng)建一個Saber模型,將你的輸出描述為輸入的函數?例如 out=a*in*in+b (其中 a 和 b 是常數)。
    的頭像 發(fā)表于 12-05 13:42 ?689次閱讀
    如何從一個簡單的數學<b class='flag-5'>表達式</b>創(chuàng)建一個Saber模型?