成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python 正則表達(dá)式

孫淑建 / 2241人閱讀

摘要:正則表達(dá)式是一種用來(lái)匹配字符串的強(qiáng)有力的武器。正則表達(dá)式匹配如果直接給出字符,就是精確匹配。模塊提供模塊,包含所有正則表達(dá)式的功能。分組除了簡(jiǎn)單地判斷是否匹配之外,正則表達(dá)式還有提取子串的強(qiáng)大功能。

正則表達(dá)式是一種用來(lái)匹配字符串的強(qiáng)有力的武器。它的設(shè)計(jì)思想是用一種描述性的語(yǔ)言來(lái)給字符串定義一個(gè)規(guī)則,凡是符合規(guī)則的字符串,我們就認(rèn)為它“匹配”了,否則,該字符串就是不合法的。

因?yàn)檎齽t表達(dá)式也是用字符串表示的,所以,我們要首先了解如何用字符來(lái)描述字符。

正則表達(dá)式匹配:

如果直接給出字符,就是精確匹配。

d 可以匹配一個(gè)數(shù)字

w 可以匹配一個(gè)字母或數(shù)字

. 可以匹配任意字符

要匹配變長(zhǎng)的字符,在正則表達(dá)式中:

用 * 表示任意個(gè)字符(包括0個(gè))

用 + 表示至少一個(gè)字符

用 ? 表示0個(gè)或1個(gè)字符

用 {n} 表示n個(gè)字符

用 {n,m} 表示n-m個(gè)字符

特殊字符 要用""轉(zhuǎn)義

正則表達(dá)式實(shí)例:

實(shí)例1:

d{3}s+d{3,8}

d{3} 表示匹配3個(gè)數(shù)字 例如010

s 匹配一個(gè)空格或tab,s+表示至少有一個(gè)空格 例如 ‘ ’

d{3,8} 表示3-8個(gè)數(shù)字,例如‘1234567’

實(shí)例2:

‘0574-65972291’

d{4}-d{4,8}

w

正則表達(dá)式進(jìn)階:

要做更精確地匹配,可以用 [ ] 表示范圍

A|B 可以匹配A或B,所以(P|p)ython可以匹配"Python"或者"python"

^表示行的開(kāi)頭,^d表示必須以數(shù)字開(kāi)頭,$表示行的結(jié)束,d$表示必須以數(shù)字結(jié)束。

re模塊

Python提供re模塊,包含所有正則表達(dá)式的功能。由于Python的字符串本身也用 轉(zhuǎn)義,因此使用Python的r前綴,就不用考慮轉(zhuǎn)義的問(wèn)題了。

例如: s = r " ABC-001 "

案例:

match( )方法 判斷是否匹配,如果匹配成功,返回Match對(duì)象,否則返回None。

正則切分字符串

用正則表達(dá)式切分字符串比用固定的字符更靈活,請(qǐng)看正常的切分代碼

"a b c".split(" ")

["a", "b", "", "", "c"]

re.split(r"s+","a b c")

["a","b","c"]

如果用戶輸入了一組標(biāo)簽,下次記得用正則表達(dá)式來(lái)把不規(guī)范的輸入轉(zhuǎn)化成正確的數(shù)組。

分組

除了簡(jiǎn)單地判斷是否匹配之外,正則表達(dá)式還有提取子串的強(qiáng)大功能。用 ( ) 表示的就是要提取的分組(Group)

貪婪匹配

正則匹配默認(rèn)是貪婪匹配,也就是匹配盡可能多的字符。

由于d+采用貪婪匹配,直接把后面的0全部匹配了,結(jié)果0*只能匹配空字符串了。

必須讓d+采用非貪婪匹配(也就是盡可能少匹配),才能把后面的0匹配出來(lái),加個(gè)?就可以讓d+采用非貪婪匹配:

編譯

當(dāng)我們?cè)赑ython中使用正則表達(dá)式時(shí),re模塊內(nèi)部會(huì)干兩件事情:

編譯正則表達(dá)式,如果正則表達(dá)式的字符串本身不合法,會(huì)報(bào)錯(cuò);

用編譯后的正則表達(dá)式去匹配字符串。

如果一個(gè)正則表達(dá)式要重復(fù)使用幾千次,出于效率的考慮,我們可以預(yù)編譯該正則表達(dá)式,接下來(lái)重復(fù)使用時(shí)就不需要編譯這個(gè)步驟了,直接匹配:

編譯后生成Regular Expression對(duì)象,由于該對(duì)象自己包含了正則表達(dá)式,所以調(diào)用對(duì)應(yīng)的方法時(shí)不用給出正則字符串。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40682.html

相關(guān)文章

  • Python基礎(chǔ)教程:-正則達(dá)式基本語(yǔ)法以及re模塊

    摘要:正則表達(dá)式關(guān)閉或可選標(biāo)志。如果所含正則表達(dá)式,以表示,在當(dāng)前位置成功匹配時(shí)成功,否則失敗。否則指的是八進(jìn)制字符碼的表達(dá)式。 正則表達(dá)式是個(gè)很牛逼的東西,不管是在javascript,還是在Python web開(kāi)發(fā)(http://www.maiziedu.com/course/python-px...)中,我們都會(huì)遇到正則表達(dá)式,雖然javascript和Python的正則表達(dá)式區(qū)別不大...

    y1chuan 評(píng)論0 收藏0
  • PythonPython正則達(dá)式使用指導(dǎo)

    摘要:反斜杠的困擾與大多數(shù)編程語(yǔ)言相同,正則表達(dá)式里使用作為轉(zhuǎn)義字符,這就可能造成反斜杠困擾。文本中正則表達(dá)式結(jié)束搜索的索引。以元組形式返回全部分組截獲的字符串。用于指定最大分割次數(shù),不指定將全部分割。 1. 正則表達(dá)式基礎(chǔ) 1.1. 簡(jiǎn)單介紹 正則表達(dá)式并不是Python的一部分。正則表達(dá)式是用于處理字符串的強(qiáng)大工具,擁有自己獨(dú)特的語(yǔ)法以及一個(gè)獨(dú)立的處理引擎,效率上可能不如str自帶的方法...

    nihao 評(píng)論0 收藏0
  • Python正則達(dá)式保姆式教學(xué),帶你精通大名鼎鼎的正則

    摘要:今天來(lái)給大家分享一份關(guān)于比較詳細(xì)的正則表達(dá)式寶典,學(xué)會(huì)之后你將對(duì)正則表達(dá)式達(dá)到精通的狀態(tài)。正則表達(dá)式是用在方法當(dāng)中,大多數(shù)的字符串檢索都可以通過(guò)來(lái)完成。導(dǎo)入模塊在使用正則表達(dá)式之前,需要導(dǎo)入模塊。 ...

    tulayang 評(píng)論0 收藏0
  • Python 正則達(dá)式

    摘要:今天就專門看看正則表達(dá)式。下面是一個(gè)正則表達(dá)式最簡(jiǎn)單的使用例子。這個(gè)例子使用了正則表達(dá)式模塊的函數(shù),它會(huì)返回所有符合模式的列表。查詢標(biāo)志讓正則表達(dá)式具有不同的行為。,按給定正則表達(dá)式分割字符串。,正則表達(dá)式中捕獲組的數(shù)量。 最近研究Python爬蟲(chóng),很多地方用到了正則表達(dá)式,但是沒(méi)好好研究,每次都得現(xiàn)查文檔。今天就專門看看Python正則表達(dá)式。本文參考了官方文檔 re模塊。 模式 首...

    FrancisSoung 評(píng)論0 收藏0
  • Python正則達(dá)式很難?一篇文章搞定他,不是我吹!

    摘要:正則表達(dá)式語(yǔ)法字符與字符類特殊字符以上特殊字符要想使用字面值,必須使用進(jìn)行轉(zhuǎn)義字符類包含在中的一個(gè)或者多個(gè)字符被稱為字符類,字符類在匹配時(shí)如果沒(méi)有指定量詞則只會(huì)匹配其中的一個(gè)。 1. 正則表達(dá)式語(yǔ)法 1.1 字符與字符類 1 特殊字符:.^$?+*{}| 以上特殊字符要想使用字面值,必須使用進(jìn)行轉(zhuǎn)義 2 字符類 1. 包含在[]中的一個(gè)或者多個(gè)字符被稱為字符類,字符類在匹配時(shí)如果沒(méi)有指...

    dcr309duan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<