它是乙個通用的乙個表示式
可以適用於任何程式語言
匯入模組後使用
在上一小節中,了解到通過re模組能夠完成使用正規表示式來匹配字串
本小節,將要講解正規表示式的單字元匹配
字元功能
.匹配任意1個字元(除了\n)
[ ]匹配[ ]中列舉的字元
\d匹配數字,即0-9
\d匹配非數字,即不是數字
\s匹配空白,即 空格,tab鍵
\s匹配非空白
\w匹配單詞字元,即a-z、a-z、0-9、_
\w匹配非單詞字元
匹配多個字元的相關格式
字元功能
*匹配前乙個字元出現0次或者無限次,即可有可無
+匹配前乙個字元出現1次或者無限次,即至少有1次
?匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有
匹配前乙個字元出現m次
匹配前乙個字元出現從m到n次
匹配多個,需要與匹配單個的符號相配合來使用
字元功能
^匹配字串開頭
$匹配字串結尾
字元功能
|匹配左右任意乙個表示式
(ab)
將括號中字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)
分組起別名
(?p=name)
引用別名為name分組匹配到的字串
給分組起名字
(?p《名字》)在正則式中獲取之前的起名了的小組的資料
(?p=名字)
#coding=utf-8執行結果:import re
ret = re.search(r"\d+", "閱讀次數為 9999")
ret.group()
'9999'與match的區別
match是從頭開始匹配
search可以從整個字串是進行搜尋
#coding=utf-8執行結果:import re
ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345")
print(ret)
['9999', '7890', '12345']方法1:
#coding=utf-8執行結果:import re
ret = re.sub(r"\d+", '998', "python = 997")
print(ret)
python = 998小結
re.sub(正則式,替換為什麼內容,字串)方法2:
#coding=utf-8執行結果:import re
def add(temp):
strnum = temp.group()
num = int(strnum) + 1
return str(num)
ret = re.sub(r"\d+", add, "python = 997")
print(ret)
ret = re.sub(r"\d+", add, "python = 99")
print(ret)
python = 998小結python = 100
re.sub(正則式,函式名,字串)需求:切割字串「info:xiaozhang 33 shandong」匹配成功的內容會作為函式執行時的實參,函式返回的內容會對匹配好的內容進行乙個替換
#coding=utf-8執行結果:import re
ret = re.split(r":| ","info:xiaozhang 33 shandong")
print(ret)
['info', 'xiaozhang', '33', 'shandong']
正規表示式總結 (一)
要使用這些字元做文字字元是需要用反斜槓 進行轉義。例如 匹配1 1 2的正規表示式為 1 1 2 字符集由方括號 括起,告訴正規表示式引擎匹配集合中的單個字元,可以使用連字元 定義乙個字元範圍 a za z0 9 在左方括號 後邊緊跟乙個尖括號 對字符集取反 a za z1 9 匹配數字字母以外的任...
Python標準庫 re 正規表示式 一
python標準庫 re 正規表示式 作用 使用形式化模式搜尋和修改文字。python 版本 1.5 及以後版本 正規表示式 regular expression 是用一種形式化語法描述的文字匹配模式。模式被解釋為一組命令,以乙個字串作為輸入,生成乙個匹配的子集或原字串的修改版本。正規表示式 一詞在...
Python中re 正規表示式 常用函式總結
1 re.match 嘗試從字串的開始匹配乙個模式 re.match的函式原型為 re.match pattern,string,flags 第乙個引數是正規表示式,如果匹配成功,則返回乙個match,否則返回乙個none 第二個引數表示要匹配的字串 第三個引數是標緻位,用於控制正規表示式的匹配方式...