python編程基礎之三十八
正則表達式:正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
-
-
缺點:效率低下,能用字符串方法完成盡量使用字符串的方法
-
優點:編碼簡單
原子 含義
\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 多行匹配
------------------------------------------------------------------------
-
-
嚴格區分大小寫
-
如果正則表達式中有{,},[,],-,?,*,|^,$,.等做普通字符,則要將其轉義
正則常用的函數方法
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編程基礎之三十八