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

首頁 > 編程 > Python > 正文

Python正則表達式教程之一:基礎篇

2019-11-25 16:20:26
字體:
來源:轉載
供稿:網友

前言

之前有人提了一個需求,我一看此需求用正則表達式最合適不過。考慮到之前每次使用正則表達式,都是臨時抱佛腳,于是這次我就一邊完成任務一邊系統的學習了一遍正則表達式。主要參考PyCon2016上的一個視頻Regular Expressions

我將分幾篇文章對正則表達式進行總結。

以下是第一部分,基礎: 

基礎部分

這里總結了正則表達式最基礎的用法,其中大部分內容對我(以及大部分程序員)來說都是平時經常用到的,所以我就一筆帶過了,只對其中的幾處用例子說明。 

     .           除了換行之外的其他所有字符

     ^           行首

     $           行尾

     [abcd]      abcd其中的一個字符

     [^abcd]     除了abcd之外的任意字符

     [a-d]       相當于[abcd]

     [a-dz]      相當于[abcdz]

     /b          單詞邊界

     /w          字母數字或下劃線 相當于[a-zA-Z0-9_]

     /W          與/w相反

     /d          數字,相當于[0-9]

     /D          與/d相反

     /s          空白字符,相當于[ /t/n/r/f/v]

     /S          與/s相反

     {5}         在此之前的正則表達式部分(下同)準確的出現5次

     {2,5}       ~出現2到5次

     {2,}        ~出現2次或多次

     {,5}        ~出現0到5次

     *          ~出現0次或多次

     ?          ~出現0次或1次

     +           ~出現1次或多次

     ABC|DEF     匹配ABC或者DEF

     /          轉義字符,如/表示匹配*,/$表示匹配$* 

/b、 /用以下幾個例子簡單說明一下: 

     /b:

>>> re.search(r'/bhello/b', 'hello')<_sre.SRE_Match object; span=(0, 5), match='hello'>>>> re.search(r'/bhello/b', 'hello world')<_sre.SRE_Match object; span=(0, 5), match='hello'>>>> re.search(r'/bhello/b', 'hello,world')<_sre.SRE_Match object; span=(0, 5), match='hello'>>>> re.search(r'/bhello/b', 'hello_world') >>> 

其實這里,/b大體上和/W一支,但是/b可以匹配行首行尾等非顯示類的字符,而/W不可以。 

     /:

>>> re.search(r'/$100', '$100')<_sre.SRE_Match object; span=(0, 4), match='$100'>>>> re.search(r'$100', '$100') >>> 

想要匹配那些在正則表達式中有特殊含義的字符,如$、^、*等,就需要用/進行轉義。 

raw string:

另外,前面例子中,模式字符串(pattern)前面都加了一個r,這個r的意思是raw string,后面所接的字符串,Pyhton解釋器無需對其進行轉義。因為,/在Python字符串中和正則表達式中都有特殊含義,所以如果不是raw string,那么要表達一個/字符,就需要四個/了(在Python解釋器中先轉義一次,2個/表示1個/,剩下2個/,在正則表達式中又轉義一次,最終剩下一個/)。例如:

>>> re.search(r'/bhello/b', 'hello')<_sre.SRE_Match object; span=(0, 5), match='hello'>>>> re.search('/bhello/b', 'hello') >>> re.search('//bhello//b', 'hello')<_sre.SRE_Match object; span=(0, 5), match='hello'>>>> re.search('////hello////', '//hello//') <_sre.SRE_Match object; span=(0, 7), match='//hello//'>>>> re.search(r'//hello//', '//hello//') <_sre.SRE_Match object; span=(0, 7), match='//hello//'>>>> print('//hello//')/hello/

總結

以上就是關于Python正則表達式之基礎的全部內容了,有了這些知識,正則表達式的基本運用就沒什么問題了。對于一些特殊情況,還需要掌握另外一些高級用法,敬請期待后續文章。希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌图县| 收藏| 蒙城县| 彝良县| 甘泉县| 张家口市| 丽水市| 徐汇区| 库尔勒市| 井冈山市| 东方市| 仁寿县| 嘉禾县| 广丰县| 乌审旗| 宁津县| 元氏县| 重庆市| 靖安县| 博野县| 衡阳市| 华容县| 大城县| 聊城市| 贵阳市| 礼泉县| 承德市| 阳原县| 营山县| 淅川县| 郧西县| 海宁市| 邯郸市| 甘泉县| 福安市| 拜城县| 土默特左旗| 灯塔市| 桦南县| 通榆县| 灯塔市|