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

python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)

 更新時(shí)間:2017年11月08日 11:43:03   作者:caimouse  
許多程序設(shè)計(jì)語(yǔ)言都支持利用正則表達(dá)式進(jìn)行字符串操作,python自然也不例外,下面這篇文章主要給大家介紹了關(guān)于在python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

簡(jiǎn)單介紹

正則表達(dá)式并不是Python的一部分。正則表達(dá)式是用于處理字符串的強(qiáng)大工具,擁有自己獨(dú)特的語(yǔ)法以及一個(gè)獨(dú)立的處理引擎,效率上可能不如str自帶的方法,但功能十分強(qiáng)大。得益于這一點(diǎn),在提供了正則表達(dá)式的語(yǔ)言里,正則表達(dá)式的語(yǔ)法都是一樣的,區(qū)別只在于不同的編程語(yǔ)言實(shí)現(xiàn)支持的語(yǔ)法數(shù)量不同;但不用擔(dān)心,不被支持的語(yǔ)法通常是不常用的部分。如果已經(jīng)在其他語(yǔ)言里使用過(guò)正則表達(dá)式,只需要簡(jiǎn)單看一看就可以上手了。

下圖展示了使用正則表達(dá)式進(jìn)行匹配的流程:

正則表達(dá)式的大致匹配過(guò)程是:依次拿出表達(dá)式和文本中的字符比較,如果每一個(gè)字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。

引言

當(dāng)大家寫(xiě)的正則表達(dá)式比較長(zhǎng),比較復(fù)雜時(shí),發(fā)現(xiàn)經(jīng)常會(huì)寫(xiě)錯(cuò),或者很難維護(hù),遇到這種情況怎么辦呢?這個(gè)不用急,聰明的設(shè)計(jì)人員早已經(jīng)想到這種情況了,提供了一種叫做詳細(xì)模式(Verbose mode expression)。當(dāng)你使用這種模式時(shí),可以給正則表達(dá)式添加注釋,這樣在維護(hù)時(shí)就不會(huì)像看天書(shū)了,同時(shí)也可以添加額外的空格,進(jìn)行對(duì)齊排版。

緊湊模式的例子:

import re 
 
address = re.compile('[\w\d.+-]+@([\w\d.]+\.)+(com|org|edu)') 
 
candidates = [ 
 u'first.last@example.com', 
 u'first.last+category@gmail.com', 
 u'valid-address@mail.example.com', 
 u'not-valid@example.foo', 
] 
 
for candidate in candidates: 
 match = address.search(candidate) 
 print('{:<30} {}'.format( 
 candidate, 'Matches' if match else 'No match') 
 )

詳細(xì)模式的修改之后:

#python 3.6 
#蔡軍生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
import re 
 
address = re.compile( 
 ''''' 
 [\w\d.+-]+ # username 
 @ 
 ([\w\d.]+\.)+ # domain name prefix 
 (com|org|edu) # TODO: support more top-level domains 
 ''', 
 re.VERBOSE) 
 
candidates = [ 
 u'first.last@example.com', 
 u'first.last+category@gmail.com', 
 u'valid-address@mail.example.com', 
 u'not-valid@example.foo', 
] 
 
for candidate in candidates: 
 match = address.search(candidate) 
 print('{:<30} {}'.format( 
 candidate, 'Matches' if match else 'No match'), 
 ) 

結(jié)果輸出如下:

first.last@example.com  Matches
first.last+category@gmail.com Matches
valid-address@mail.example.com Matches
not-valid@example.foo  No match

參數(shù)解釋:X    VERBOSE

該標(biāo)志通過(guò)給予你更靈活的格式以便你將正則表達(dá)式寫(xiě)得更易于理解。當(dāng)該標(biāo)志被指定時(shí),在 RE 字符串中的空白符被忽略,除非該空白符在字符類中或在反斜杠之後;這可以讓你更清晰地組織和縮進(jìn) RE。它也可以允許你將注釋寫(xiě)入 RE,這些注釋會(huì)被引擎忽略;注釋用 "#"號(hào) 來(lái)標(biāo)識(shí),不過(guò)該符號(hào)不能在字符串或反斜杠之後。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

卓尼县| 桐柏县| 九龙坡区| 孝昌县| 白河县| 漠河县| 长子县| 颍上县| 清苑县| 呼伦贝尔市| 蓝田县| 兴文县| 邹平县| 汾阳市| 尼勒克县| 河津市| 邳州市| 宜兰县| 江孜县| 班戈县| 靖江市| 宁晋县| 乌鲁木齐县| 利津县| 邢台市| 海阳市| 洪洞县| 信阳市| 高台县| 平顺县| 郯城县| 中江县| 尼玛县| 铁力市| 马山县| 雅江县| 长岛县| 阳江市| 岗巴县| 清水县| 东城区|