1. 程式人生 > >python編程基礎之三十八

python編程基礎之三十八

data- 正則表達 開始 con class pil 連續 search方法 運行

正則表達式:正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。

  • 需要引入內置模塊re

  • 缺點:效率低下,能用字符串方法完成盡量使用字符串的方法

  • 優點:編碼簡單

原子       含義

\d      0-9中的任意一個字符

\D      排除0-9

\s       \t,\n,\r,空格等字符中的一個

\S      排除\s

\w      數字字母下劃線

\W      排除\w

[]       自定義的原子表

[^]      排除自定義的原子表

^       行首,

¥      行尾

.      表示出\n以外的任何字符,

\b      詞邊界

\B      非詞邊界

\A      字符串首

\Z      字符串結尾

-       表示域,一個範圍,比如1-9,1到9中的任意一個

-----------------------------------------------

元字符     含義

{}       表示重復原子次數

{m}       表示重復原子m次

{m,n}      表示重復原子最少m次,最多n次

{m,}      表示重復原子最少m次,無上限

()      改變優先級,取子元素

*       連續出現重復至少0次,意思出沒出現沒關系,但是存在貪婪性,

+        至少出現一次,存在貪婪性

?       出現0次或1次

*?,+?      取消貪婪

|       或       

----------------------------------------------------------------------

模式修正符

修飾符      含義

re.S       使 . 匹配所有字符

re.L       本地識別化

re.U      根據Unicode字符解析字符嗎,會影響\b,\B,\w,\W

re.l       不區分大小寫

re.M      多行匹配

------------------------------------------------------------------------

  • 模式字符串一定要使用原字符串,也就是用r開頭的字符串。r‘www‘

  • 嚴格區分大小寫

  • 如果正則表達式中有{,},[,],-,?,*,|^,$,.等做普通字符,則要將其轉義

正則常用的函數方法

re.match()字符串開頭開始匹配,只匹配開頭

re.search()從開始開始匹配,但是不限於只匹配開頭,中間的也行

re.findall()找出所有符合規則的並以列表的形式返回

re.split()根據模式拆分

re.sub,re.subn:在目標字符串中以正則表達式的規則匹配字符串,再把他們替換成指定的字符串。可以指定替換的次數,

如果 不指定,替換所有的匹配字符串

前者返回一個替換後的字符串,後者返回一個元組,第一個元素替換後的字符串

re.group()和re.groups():用於提取子元素,模式中一個括號就是一個子元素,group和groups只能在match和search方法裏使用,

通過返回的match object獲取子元素。在模式串和sub和subn中的替換字符串中可以使用\1,\2,\3....來引用子元素

compile():就是把規則存儲起來,不需要多次解釋,提高運行速度

python編程基礎之三十八