Python正則表達式的簡單應用和示例演示

今天小編給你們分享的是Python正則表達式的簡單應用和示例演示,將前面學習的Python正則表達式作一個歸納。正則表達式

 

Python正則表達式的簡單應用和示例演示

 

下面的栗子是用於提取高考日期,通常來講,咱們填寫日期都會寫2018年6月7日,可是也有不少人會寫成2018/6/七、2018-6-七、2018-06-07等,還有的人可能會寫爲2018-06或者2018年6月。總之對日期的寫法五花八門,那麼咱們如今須要寫一個正則表達式來統一匹配這麼多的狀況,應該如何來處理呢?具體的教程以下所示。工具

 

Python正則表達式的簡單應用和示例演示

 

一、首先咱們先寫個簡單的正則表達式,而後一步步通過測試,慢慢達到匹配的效果。學習

 

Python正則表達式的簡單應用和示例演示

 

這個正則表達式比較複雜,一會兒可能看不懂,小編帶你們一層一層的進行理解。開發工具

二、咱們從左到右對正則表達式進行分析,首先「.*」表明的是任意字符出現任意屢次,對應原始字符中的「XXX」;「高考時間是」沒有什麼特別的,就是對應原始字符串中的「高考時間是」。測試

三、接下來是「d{4}」表明的是連續出現4個數字,對應原始字符串中的年份「2018」;「[年/-]」表示取「年」、「/」、「-」中的任意一個字符,對應原始字符串中年份「2018」以後所鏈接的下一個字符。blog

四、繼續日後是「d{1,2}」表明的是連續出現1個到2個數字,對應原始字符串中的月份「6」或者「06」;「[月/-]」表示取「月」、「/」、「-」中的任意一個字符,對應原始字符串中月份「6」或者「06」以後所鏈接的下一個字符,同年份的理解一模一樣。教程

五、接下來就複雜一些了,其中「d{1,2}」的理解同月份的理解一致,關鍵是關於「日」的提取主要須要注意有的字符串有日期,有的字符串並無日期,因此須要特殊字符「|」來表示「或」的關係,而且用特殊字符「$」來表示結束。開發

六、理解了上述關係以後,接下來依次驗證六個原始字符串,看看是否能匹配成功。下圖是原始字符串string2的匹配狀況。字符串

 

Python正則表達式的簡單應用和示例演示

 

發現能夠匹配得上。string

七、下圖是原始字符串string3的匹配狀況。

 

Python正則表達式的簡單應用和示例演示

 

發現能夠匹配得上。

八、下圖是原始字符串string4的匹配狀況。

 

Python正則表達式的簡單應用和示例演示

 

發現能夠匹配得上。

九、下圖是原始字符串string5的匹配狀況。

 

Python正則表達式的簡單應用和示例演示

在學習中有迷茫不知如何學習的朋友小編推薦一個學Python的學習q u n 227  -435-  450不管你是大牛仍是小白,是想轉行仍是想入行均可以來了解一塊兒進步一塊兒學習!內有開發工具,不少乾貨和技術資料分享!

發現這種模式並不能匹配上,這是什麼緣由呢?

十、緣由是月份「d{1,2}」後面限定要跟「[月/-]」,而原始字符串string5的時間爲「2018-06」,其後面沒有任何的字符就結束了,也匹配模式搭配不上,所以在這裏須要改進一下。

 

Python正則表達式的簡單應用和示例演示

 

須要利用特殊字符「|」和特殊字符「$」,作一個「或」的選擇,如上圖所示,以後就能夠匹配成功了。

固然也能夠直接把「[月/-]」一塊兒加入到第二個括號裏,以下圖所示,這種方式更爲簡便。

 

Python正則表達式的簡單應用和示例演示

 

十一、下圖是原始字符串string6的匹配狀況。

 

Python正則表達式的簡單應用和示例演示

 

能夠看到此時能夠成功匹配。

通過測試能夠發現,此時改進後的字符串對6種不一樣日期的字符串均可以成功匹配。小夥伴們,有沒有感覺到正則表達式的魔力呢?

相關文章
相關標籤/搜索