欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python正則表達(dá)式re.search()用法詳解

 更新時(shí)間:2022年09月26日 11:26:25   作者:IT之一小佬  
re是Python中最常見的正則表達(dá)式模塊,常用方法包括compile,match,findall,finditer,search,split,sub等,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式re.search()用法詳解的相關(guān)資料,需要的朋友可以參考下

re.search():匹配整個(gè)字符串,并返回第一個(gè)成功的匹配。如果匹配失敗,則返回None 

pattern: 匹配的規(guī)則,

string : 要匹配的內(nèi)容,

flags 標(biāo)志位 這個(gè)是可選的,就是可以不寫,可以寫, 比如要忽略字符的大小寫就可以使用標(biāo)志位

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

  1. re.I 忽略大小寫
  2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴于當(dāng)前環(huán)境
  3. re.M 多行模式
  4. re.S 即為 . 并且包括換行符在內(nèi)的任意字符(. 不包括換行符)
  5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依賴于 Unicode 字符屬性數(shù)據(jù)庫
  6. re.X 為了增加可讀性,忽略空格和 # 后面的注釋

示例代碼:【檢查字符串是否以 "Long" 開頭并以 "China" 結(jié)尾

import re
 
s = "Long live the people's Republic of China"
ret = re.search("^Long.*China$", s)
 
print(ret)
print(ret.group())
print(ret[0])

運(yùn)行結(jié)果:

 示例代碼:【在字符串中搜索第一個(gè)空白字符

import re
 
s = "Long live the people's Republic of China"
ret = re.search("\s", s)
 
print(ret)
print(ret.start())

運(yùn)行結(jié)果:

示例代碼:【如果search未匹配到,返回None】

import re
 
s = "Long live the people's Republic of China"
ret = re.search("USA", s)
 
print(ret)

運(yùn)行結(jié)果:

 示例代碼:【忽略大小寫】

import re
 
s = "Long live the people's Republic of China"
# ret1 = re.search('long', s)  這行代碼直接報(bào)錯(cuò)
ret1 = re.search('l', s)
print(ret1)
print(ret1.span())
print(ret1.string)
print(ret1.group())
 
print("*" * 50)
 
ret2 = re.search('long', s, re.I)
print(ret2)
print(ret2.span())
print(ret2.string)
print(ret2.group())

運(yùn)行結(jié)果:

示例代碼:【group()的使用】 

import re
 
s = 'abc123def456ghi789'
ret_compile = re.compile("([a-z]*)([0-9]*)([a-z]*)")
print(ret_compile)
 
ret = ret_compile.search(s)
print(ret)
print(ret.group())
print(ret.group(0))  # group()和group(0) 一樣匹配的是整體
print(ret.group(1))  # 匹配第1個(gè)小括號的內(nèi)容
print(ret.group(2))  # 匹配第2個(gè)小括號的內(nèi)容
print(ret.group(3))  # 匹配第3個(gè)小括號的內(nèi)容

運(yùn)行效果:

 示例代碼:【group()分組的使用】

import re
 
s = 'abc123def456ghi789'
ret_compile = re.compile("(?P<num1>[a-z]*)(?P<num2>[0-9]*)(?P<num3>[a-z]*)")
print(ret_compile)
 
ret = ret_compile.search(s)
print(ret)
print(ret.group())
print(ret.group(0))  # group()和group(0) 一樣匹配的是整體
print(ret.group(1))  # 匹配第1個(gè)小括號的內(nèi)容
print(ret.group(2))  # 匹配第2個(gè)小括號的內(nèi)容
print(ret.group(3))  # 匹配第3個(gè)小括號的內(nèi)容
 
print("*" * 100)
 
print(ret.group())
print(ret.group("num1"))  # 這里效果等同于group(1)
print(ret.group("num2"))  # 這里效果等同于group(3)
print(ret.group("num3"))  # 這里效果等同于group(3)

運(yùn)行效果:

總結(jié):為匹配方便,能用search就不用match,match方法限定匹配時(shí),頭部必須是一致的

匹配演練:最后我們做些匹配演練,實(shí)戰(zhàn)下

import re

html='''<div id="songs-list">
    <h2 class="title">經(jīng)典老歌</h2>
    <p class="introduction">
        經(jīng)典老歌列表
    </p>
    <ul id ="list" class="list-group">
        <li data-view="2">一路上有你</li>
        <li data-view="7">
            <a href="/2.mp3" singer="任賢齊">滄海一聲笑</a>
        </li>
        <li data-view="4" class="active">
            <a href="/3.mp3" singer="齊秦">往事隨風(fēng)</a>
        </li>
        <li data-view="6"><a href="/4.mp3" singer="beyond">光輝歲月</a></li>
        <li data-view="5"><a href="/5.mp3" singer="陳惠琳">記事本</a></li>
        <li data-view="5">
            <a href="/6.mp3" singer="鄧麗君"><i class="fa fa-user"></i>但愿人長久</a>
        </li>
    </ul>
</div>
'''

上面是html代碼,要求匹配出 第3個(gè)li標(biāo)簽中的齊秦 往事隨風(fēng) ,代碼如下:

result = re.search('<li.*?active.*?singer="(.*?)">(.*?)</a>',html,re.S)#re.S確保.能匹配到換行符
if result:
    print(result.group(1),result.group(2))

結(jié)果:

齊秦 往事隨風(fēng)

我們還要求匹配出第二個(gè)li標(biāo)簽中的內(nèi)容 任賢齊 滄海一聲笑

result = re.search('<li.*?singer="(.*?)">(.*?)</a>',html,re.S)
if result:
    print(result.group(1),result.group(2))

結(jié)果:

任賢齊 滄海一聲笑

如果匹配時(shí)候不需要匹配換行符,那么參數(shù)中就沒必要帶re.S,比如匹配第4個(gè)和第5個(gè)li標(biāo)簽中的歌手和歌名。但是re.search也僅僅是返回一個(gè)符合匹配的結(jié)果。如果我們要返回符合匹配的所有結(jié)果,要用到re.findall。這一節(jié)的re.search就說到這里。

總結(jié) 

到此這篇關(guān)于Python正則表達(dá)式re.search()用法詳解的文章就介紹到這了,更多相關(guān)Python re.search()用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django數(shù)據(jù)庫操作的實(shí)例(增刪改查)

    Django數(shù)據(jù)庫操作的實(shí)例(增刪改查)

    下面小編就為大家?guī)硪黄狣jango數(shù)據(jù)庫操作的實(shí)例(增刪改查)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • python3.x如何向mysql存儲圖片并顯示

    python3.x如何向mysql存儲圖片并顯示

    這篇文章主要介紹了python3.x如何向mysql存儲圖片并顯示問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Tensor和NumPy相互轉(zhuǎn)換的方法

    Tensor和NumPy相互轉(zhuǎn)換的方法

    本文主要介紹了Tensor和NumPy相互轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python中使用tarfile壓縮、解壓tar歸檔文件示例

    Python中使用tarfile壓縮、解壓tar歸檔文件示例

    這篇文章主要介紹了Python中使用tarfile壓縮、解壓tar歸檔文件示例,本文直接給出解壓和壓縮代碼示例,需要的朋友可以參考下
    2015-04-04
  • Python網(wǎng)絡(luò)編程之ftplib模塊

    Python網(wǎng)絡(luò)編程之ftplib模塊

    這篇文章介紹了Python網(wǎng)絡(luò)編程之ftplib模塊,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁功能

    使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁功能

    這篇文章主要介紹了使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python字符串的基本操作方法(非常詳細(xì))

    Python字符串的基本操作方法(非常詳細(xì))

    字符串是python中最常見的數(shù)據(jù)類型,創(chuàng)建字符串只需用引號括起來分配給一個(gè)變量即可,這篇文章主要給大家介紹了關(guān)于Python字符串的基本操作方法的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Python 實(shí)現(xiàn)平臺類游戲添加跳躍功能

    Python 實(shí)現(xiàn)平臺類游戲添加跳躍功能

    這篇文章主要介紹了Python 實(shí)現(xiàn)平臺類游戲添加跳躍功能,,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python數(shù)據(jù)庫反向生成Model最優(yōu)方案示例

    Python數(shù)據(jù)庫反向生成Model最優(yōu)方案示例

    這篇文章主要介紹了Python數(shù)據(jù)庫反向生成Model最優(yōu)方案的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Python深入了解defaultdict之輕松處理默認(rèn)值與復(fù)雜數(shù)據(jù)結(jié)構(gòu)

    Python深入了解defaultdict之輕松處理默認(rèn)值與復(fù)雜數(shù)據(jù)結(jié)構(gòu)

    在Python標(biāo)準(zhǔn)庫collections模塊中,defaultdict提供了一種在字典訪問不存在的鍵時(shí)自動(dòng)提供默認(rèn)值的便利方式,這篇文章詳細(xì)介紹了defaultdict的使用方法、基礎(chǔ)概念、創(chuàng)建實(shí)例的步驟以及應(yīng)用場景,需要的朋友可以參考下
    2024-09-09

最新評論