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

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

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

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

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

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

flags 標志位 這個是可選的,就是可以不寫,可以寫, 比如要忽略字符的大小寫就可以使用標志位

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

  1. re.I 忽略大小寫
  2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依賴于當前環(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])

運行結(jié)果:

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

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

運行結(jié)果:

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

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

運行結(jié)果:

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

import re
 
s = "Long live the people's Republic of China"
# ret1 = re.search('long', s)  這行代碼直接報錯
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())

運行結(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個小括號的內(nèi)容
print(ret.group(2))  # 匹配第2個小括號的內(nèi)容
print(ret.group(3))  # 匹配第3個小括號的內(nèi)容

運行效果:

 示例代碼:【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個小括號的內(nèi)容
print(ret.group(2))  # 匹配第2個小括號的內(nèi)容
print(ret.group(3))  # 匹配第3個小括號的內(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)

運行效果:

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

匹配演練:最后我們做些匹配演練,實戰(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="齊秦">往事隨風</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個li標簽中的齊秦 往事隨風 ,代碼如下:

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

結(jié)果:

齊秦 往事隨風

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

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

結(jié)果:

任賢齊 滄海一聲笑

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

總結(jié) 

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

相關(guān)文章

  • Pandas繪圖函數(shù)超詳細講解

    Pandas繪圖函數(shù)超詳細講解

    matplotlib要組裝一張圖表,需要的各個基礎(chǔ)組件對象。相對工作量較大,但在pandas中我們有行標簽和列標簽以及分組信息。原本制作一張圖表需要一大堆matplotlib代碼。在pandas中只需要一兩條代碼就可以了,今天記錄一下,pandas中常見的幾個繪制圖表的方法
    2022-12-12
  • Pytorch-mlu?實現(xiàn)添加逐層算子方法詳解

    Pytorch-mlu?實現(xiàn)添加逐層算子方法詳解

    本文主要分享了在寒武紀設(shè)備上?pytorch-mlu?中添加逐層算子的方法教程,代碼具有一定學習價值,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 使用Python生成隨機密碼的示例分享

    使用Python生成隨機密碼的示例分享

    這篇文章主要介紹了使用Python生成隨機密碼的示例分享,比如發(fā)生一些安全問題時為用戶先設(shè)置隨機密碼然后供用戶修改的情況下可以用到,需要的朋友可以參考下
    2016-02-02
  • 用python實現(xiàn)學生信息管理系統(tǒng)

    用python實現(xiàn)學生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了用python實現(xiàn)學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 如何使用Python多線程測試并發(fā)漏洞

    如何使用Python多線程測試并發(fā)漏洞

    這篇文章主要介紹了如何使用Python多線程測試并發(fā)漏洞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • python爬蟲神器Pyppeteer入門及使用

    python爬蟲神器Pyppeteer入門及使用

    這篇文章主要介紹了python爬蟲神器Pyppeteer入門及使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python環(huán)境的報錯解決方法

    python環(huán)境的報錯解決方法

    這篇文章主要為大家介紹了python環(huán)境的報錯解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Python制作簡易版小工具之計算天數(shù)的實現(xiàn)思路

    Python制作簡易版小工具之計算天數(shù)的實現(xiàn)思路

    這篇文章主要介紹了Python制作簡易版小工具之計算天數(shù)的實現(xiàn)思路,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Python 經(jīng)典算法100及解析(小結(jié))

    Python 經(jīng)典算法100及解析(小結(jié))

    這篇文章主要介紹了Python 經(jīng)典算法100及解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Python多個MP4合成視頻的實現(xiàn)方法

    Python多個MP4合成視頻的實現(xiàn)方法

    最近接觸了個項目,需要把多個文件合成一個視頻,本文主要使用Python把多個MP4合成視頻,感興趣的可以了解一下
    2021-07-07

最新評論

孟连| 无锡市| 尼勒克县| 廊坊市| 青岛市| 庆阳市| 元氏县| 丰镇市| 屏边| 东光县| 嘉义市| 丹棱县| 峨眉山市| 微山县| 友谊县| 从化市| 黄龙县| 德化县| 仁怀市| 石林| 宝山区| 琼海市| 平谷区| 友谊县| 太保市| 金堂县| 盐源县| 兖州市| 桂阳县| 金溪县| 临武县| 许昌县| 舒城县| 集贤县| 临夏县| 德令哈市| 彰化县| 韶关市| 广河县| 绥芬河市| 宁夏|