正則表達式是處理字符串的強大工具。作爲一個概念而言,正則表達式對於Python來說並不是獨有的。 正則表達式是一個特殊的字符序列,它能幫助開發人員方便的檢查一個字符串是否與某種模式匹配。
Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。re 模塊使 Python 語言擁有全部的正則表達式功能。下面將介紹Python中對字符串進行搜索和查找的一些函數方法。
常用函數
一般字符
(1)“.”字符爲匹配任意單個字符。例如,a.b可以的匹配結果爲abc、aic、a&c等,但不包括換行符。
(2)“\”字符爲轉義字符,可以把字符改變爲原來的意思。聽上去不是很好理解,例如“.”字符是匹配任意的單個字符,但有時不需要這個功能,只想讓它代表一個點,這時就可以使用“.”,就能匹配爲“.”了。
(3)[…]爲字符集,相當於在中括號中任選一個。例如a[ bcd], 匹配 的 結果 爲 ab、 ac 和 ad。
預定義字符集
預定義字符集 含義
(1)\d 匹配一個數字字符。等價於 [0-9]。
(2)\D 匹配一個非數字字符。等價於[^0-9]。
(3)\s 匹配任何空白字符,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
(4)\S 匹配任何非空白字符。等價於 [^ \f\n\r\t\v]。
(5)\w 匹配包括下劃線的任何單詞字符。等價於[A-Za-z0-9_]。
(6)\W 匹配任何非單詞字符。等價於 [^A-Za-z0-9_]。
數量詞
(1)“*”數量詞匹配前一個字符0或無限次。例如,ab*c匹配ac、abc、abbc和abbbc等。
(2)“+”與“*”很類似,只是至少匹配前一個字符一次。例如,ab+c匹配abc、abbc和abbbc等。
(3)“?”數量詞匹配前一個字符0或1次。例如,ab?c匹配ac和abc。
(4)“{m}”數量詞匹配前一個字符m次。例如,ab{3}c匹配abbbc。
(5)“{m,n}”數量詞匹配前一個字符m至n次。例如,ab{1,3}c匹配abc、abbc和abbbc。
一個例子
下面是常用的泰坦尼克號數據,在對年齡進行缺失值填充時,常用方法是衆數或平均數填充,或者利用算法填充,但是利用衆數或中位數填充會有較大誤差,利用算法填充又對技術要求比較高,可以觀察到"Name"列都包含有稱呼,如:Mr,Miss,根據常識可以知道,西方的這些稱呼是與年齡相關的,所以可以根據Name列對Age進行缺失值填充,這個時候正則表達式就派上用場了.
怎麼樣?Python中的正則表達式你瞭解了麼?其實,這些知識只是正則表達式中的很小的一部分,還有很多很多的知識待大家去探索哦~