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

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

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

淺析python字符串模式匹配

jf_78858299 ? 來(lái)源:梯閱線條 ? 作者:小梯子 ? 2023-02-23 15:04 ? 次閱讀

python字符串可以通過(guò)re模塊的模式匹配來(lái)處理文本。

1.1 match()

用法

match(pattern, string, flags=0)

描述

從字符串(string)的開(kāi)頭應(yīng)用模式(pattern),返回匹配對(duì)象(match),如果未找到匹配內(nèi)容,返回None。

入?yún)?/strong>

pattern:模式,即要匹配的規(guī)則,或者叫正在表達(dá)式

string:字符串,即要匹配的內(nèi)容

flags:標(biāo)志,用于控制正則表達(dá)式的匹配方式,比如是否區(qū)分大小寫(xiě),多行匹配等,默認(rèn)為0。

出參

匹配成功,返回match,否則,返回None。

示例

下面例子,搜索子字符串(pat),以’梯閱線條’開(kāi)始,后面跟著0個(gè)或幾個(gè)空格或制表符([ \\t]*),注意是用[]包含, 表示0個(gè)或幾個(gè),接著有任意字符并將其保存至匹配的group中,注意任意字符用’. ’表示,()表示匹配的group,第1個(gè)()表示group(1),第n個(gè)()表示group(n),最后以’學(xué)習(xí)’結(jié)尾。

>>> import re
>>> pat='梯閱線條[ \\t]*(.*)學(xué)習(xí)'
>>> strs='梯閱線條軟件測(cè)試梯閱線條python字符串re模塊模式匹配學(xué)習(xí)'
>>> mat=re.match(pat,strs)
>>> print(mat)
...

1.2 group()

用法

group([group1, ...]) -> str or tuple.

描述

索引或名稱(chēng)返回匹配的字符串或元組。

入?yún)?/strong>

不送或送0,表示返回整個(gè)字符串。

送groupn,表示返回點(diǎn)n個(gè)分組,這里的n對(duì)應(yīng)正則表達(dá)式里面的()的位置,從1開(kāi)始。

送group1,group3,表示返回第1和第3個(gè)分組組成的元組。

出參

字符串或元組。

示例

>>> import re
>>> pat='/(.*)/(.*)/(.*)'
... 
>>> strs='/梯閱線條/python學(xué)習(xí)/re模塊group'
... 
>>> re.match(pat,strs)
...

1.3 groups()

用法

groups(self, /, default=None)

描述

返回包含匹配的所有子組的元組,從1開(kāi)始。

入?yún)?/strong>

default,表示未匹配到的分組的默認(rèn)值,默認(rèn)為None。

出參

元組

示例

注意:?(和*類(lèi)似)表示前面的內(nèi)容為0個(gè)或幾個(gè)。d+表示匹配數(shù)字,.*表示匹配任意內(nèi)容(此時(shí)沒(méi)有匹配到這返回空字符非None)。

>>> re.match('/(.*)/(.*)/?(d+)?','/梯閱線條/python學(xué)習(xí)').groups()
...                        
('梯閱線條', 'python學(xué)習(xí)', None)
>>> re.match('/(.*)/(.*)/?(d+)?','/梯閱線條/python學(xué)習(xí)').groups('groups用法')
...                        
('梯閱線條', 'python學(xué)習(xí)', 'groups用法')
>>> re.match('/(.*)/(.*)/?(.*)?','/梯閱線條/python學(xué)習(xí)').groups()
...                        
('梯閱線條', 'python學(xué)習(xí)', '')
>>> re.match('/(.*)/(.*)/*(d+)*','/梯閱線條/python學(xué)習(xí)').groups()
...                        
('梯閱線條', 'python學(xué)習(xí)', None)
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1929

    瀏覽量

    34539
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    575

    瀏覽量

    20468
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    python字符串拼接方式了解

    python字符串拼接的方式 在Python的實(shí)際開(kāi)發(fā)中,很多都需要用到字符串拼接,python字符串
    發(fā)表于 12-06 10:09 ?1022次閱讀

    學(xué)習(xí)Tcl來(lái)這里:字符串匹配

    這里可以看到[a-z0-9]和[a-z][0-9]是不同的,前者匹配一個(gè)字符,后者匹配兩個(gè)字符,其種一個(gè)為字母,另一個(gè)為數(shù)字,所以字符串9s
    的頭像 發(fā)表于 09-21 11:14 ?5489次閱讀

    C語(yǔ)言字符串匹配和數(shù)據(jù)提取源碼

    C語(yǔ)言字符串匹配與數(shù)據(jù)提取源碼
    的頭像 發(fā)表于 02-27 15:42 ?2343次閱讀
    C語(yǔ)言<b class='flag-5'>字符串</b><b class='flag-5'>匹配</b>和數(shù)據(jù)提取源碼

    教你7個(gè)Python判斷字符串是否包含子的方法

    教你7個(gè)Python判斷字符串是否包含子的方法
    的頭像 發(fā)表于 08-17 10:52 ?5027次閱讀
    教你7個(gè)<b class='flag-5'>Python</b>判斷<b class='flag-5'>字符串</b>是否包含子<b class='flag-5'>串</b>的方法

    什么是復(fù)制字符串?Python如何復(fù)制字符串

    連續(xù)幾篇文章都在寫(xiě) Python 字符串,這出乎我的意料了。但是,有的問(wèn)題,不寫(xiě)不行,特別是那種靈機(jī)一動(dòng)想到的問(wèn)題,最后你發(fā)現(xiàn),很多人根本不懂卻又誤以為自己懂了。那就繼續(xù)刨根問(wèn)底,探究個(gè)明白吧
    發(fā)表于 11-25 10:32 ?2978次閱讀

    2.2 python字符串類(lèi)型

    2.2 python字符串類(lèi)型 1. 如何定義字符串? 字符串Python中最常用的數(shù)據(jù)類(lèi)型之一。 使用單引號(hào)或雙引號(hào)來(lái)創(chuàng)建
    的頭像 發(fā)表于 02-17 17:08 ?1391次閱讀

    探究字符串模式匹配的高級(jí)數(shù)據(jù)結(jié)構(gòu)和算法

    在講解算法之前,先定義兩個(gè)概念,方便后面講解。他們分別是主(S)和模式(P)。比如說(shuō)要在字符串A中查找字符串B,那么A就是主
    的頭像 發(fā)表于 11-07 11:29 ?926次閱讀

    Python-字符串

    字符串就是 一字符 ,是編程語(yǔ)言中表示文本的數(shù)據(jù)類(lèi)型,在Python中使用一對(duì)雙引號(hào) "" 或者一對(duì)單引號(hào)來(lái)定義.
    的頭像 發(fā)表于 02-16 15:05 ?1097次閱讀
    <b class='flag-5'>Python</b>-<b class='flag-5'>字符串</b>

    什么是字符串

    Python 中有很多數(shù)據(jù)類(lèi)型,字符串是其中的一種
    的頭像 發(fā)表于 02-23 14:55 ?5644次閱讀
    什么是<b class='flag-5'>字符串</b>

    python字符串序列操作和不可變性

    初識(shí)python字符串序列操作和不可變性。python字符串序列操作為序列通用操作,python字符串
    的頭像 發(fā)表于 02-23 15:01 ?822次閱讀

    python字符串有哪些特定方法

    python字符串序列操作也適用于列表和元組。 python字符串還有獨(dú)有方法,即字符串對(duì)象的函數(shù),其他對(duì)象不可調(diào)用,只有
    的頭像 發(fā)表于 02-23 15:02 ?657次閱讀

    Python中檢查字符串包含的方法

    Python 有多種處理字符串的方法。今天我們介紹如何檢查一個(gè)字符串中是否包含另一個(gè)字符串。
    的頭像 發(fā)表于 05-14 16:02 ?1.6w次閱讀

    Python 如何判斷字符串是否包含子

    方法 使用 字符串 對(duì)象的 find 方法,如果有找到子,就可以返回指定子字符串中的出現(xiàn)位置,如果沒(méi)有找到,就返回 -1 >> > "hello,
    的頭像 發(fā)表于 11-02 10:55 ?461次閱讀

    python怎么把字符串變成數(shù)字

    Python是目前廣泛應(yīng)用的一種編程語(yǔ)言,它以簡(jiǎn)潔、易讀和靈活的特性被廣大開(kāi)發(fā)者所喜愛(ài)。在Python中,字符串和數(shù)字是兩種常見(jiàn)的數(shù)據(jù)類(lèi)型。字符串是由
    的頭像 發(fā)表于 11-22 09:47 ?3575次閱讀

    python輸出固定長(zhǎng)度的字符串

    Python 是一種強(qiáng)大而靈活的編程語(yǔ)言,具有許多用于處理字符串的功能。在 Python 中,有多種方法可以輸出固定長(zhǎng)度的字符串。下面將詳細(xì)介紹這些方法。 方法一:使用
    的頭像 發(fā)表于 11-22 10:41 ?3039次閱讀