国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 16:29:20
字體:
供稿:網(wǎng)友

簡單介紹

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

下圖展示了使用正則表達式進行匹配的流程:

python,正則使用實例,正則表達式,中使用正則

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

引言

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

緊湊模式的例子:

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/199484.html">python/272136.html">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  Matchesfirst.last+category@gmail.com Matchesvalid-address@mail.example.com Matchesnot-valid@example.foo  No match

參數(shù)解釋:X    VERBOSE

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新泰市| 剑川县| 武乡县| 和林格尔县| 河南省| 海口市| 梅州市| 佛冈县| 虞城县| 丰顺县| 贡嘎县| 山阳县| 丰城市| 德格县| 黑河市| 通榆县| 调兵山市| 开封县| 大石桥市| 石嘴山市| 衡东县| 平舆县| 金溪县| 桐城市| 讷河市| 溧水县| 长泰县| 宜州市| 沁水县| 四川省| 灵寿县| 南昌市| 连云港市| 赣榆县| 普格县| 永康市| 高清| 星子县| 洛扎县| 天全县| 岳普湖县|