由堆具有特殊意義的字元組成的式子。用於匹配查詢字串內容。
主要學習重點,就是學習這些字元的含義。
"abc"表示式不包含任何特殊字元,就是精準匹配,說白了判斷是否相同
print(re.findall('abc','
abcbbb'))
#['abc']
\n \t \f
符號含義
\a從字元的開始處開始匹配
\z從字元的結尾處匹配
^從字元的開始處開始匹配
$從字元的結尾處匹配
^$為整體匹配
print(re.match('^abc
','abccc'))
#print(re.match('
\aabc
','abccc'))
#
#結尾 \z $
print(re.findall('
abc$
','dfabc'))
print(re.findall('
abc\z
','sjjfabc'))
#['abc']
#['abc']
判斷字元是否在乙個範圍內
符號含義
\w字母 數字 下劃線
\w非字母 數字 下劃線
\d數字
\d非數字
\s空白字元
\s非空字元
手動指定範圍 ascii碼表範圍
[^]指定範圍以外的內容 與上面相反
.除了換行符之外的任何字元
字元含義
*任意次數
+一次或多次
?0次或1次
*+都是貪婪匹配,會嘗試盡可能多取
給上述表示式加上?變成了非貪婪模式,盡可能的少取,最常用
print(re.findall('\w+','
ndfjbsasb'))
print(re.findall('
\w+?
','ndfjbsasb'))
#['ndfjbsasb']
#['n', 'd', 'f', 'j', 'b', 's', 'a', 's', 'b']
給表示式中需要單獨獲取的部分加上括號
乙個表示式中可以有多個分組
用search或match得到match物件呼叫group傳入的索引來獲取分組內容
text = '搶火車票
如果匹配的內容包括\ 得變成4個斜槓或者r'\\'
text = r'a\b'
#匹配a\b
print(re.findall('
a\\\\b
',text))
print(re.findall(r'
a\\b
',text))
#['a\\b']
#['a\\b']
text = 'daaaccddddasd
'
檢索所有內容,在列表中顯示所有符合條件的字串
res = re.findall('a+',text)
(res)
#['aaa', 'a']
從開頭檢索內容,若開頭內容符合條件,則返回第乙個條件的match物件,否則返回none
res = re.match('d',text)
(res)
(res.group())##
d
檢索所有內容,內容第一符合條件,則返回第乙個符合條件的match物件,否則返回none
match物件可以通過.group()
res = re.search('a+',text)
(res)
(res.group())##
aaa
將傳入的字串表示式,轉變成乙個正則物件,可以適應各種re操作。
pa = re.compile('a+'(re.findall(pa,text))
#['aaa', 'a']
將字串根據條件切分,成字典形式
res = re.split('a+',text)
(res)
#['d', 'ccdddd', 'sd']
將字串根據條件替換,返回新的字串
text = 'daaaccddddasd
'res = re.sub('
a+','a'
,text)
(res)
#daccddddasd
常用模組之re模組
正規表示式是一門獨立語言 是通過一些特殊符號使用,從而在字串中篩選出想要的結果 如果想在python中使用正則,則需借助於內建模組re 字元組 包含乙個字元或者的意思 a z a z中任意取乙個字元 a z a z中任意取乙個字元 0 9 0 9中任意取乙個字元 特殊符號 特殊符號預設也只能單個單個...
常用模組之re
正規表示式是指用一連竄的特殊字元來表示常用的符號,用來篩選和匹配想要的內容 注 1.在括號內用 可以將查詢到非括號中內容也顯示出來 2.括號即表示乙個組,也表示只顯示內容 匹配所有的字元字母下劃線 print re.findall w asdas123 sd.dsad13 dsa a s d a s...
re模組常用方法
match string pos endpos string是待匹配的字串pos和endpos可選引數,指定字串的起始和終點位置,預設值分別是0和len 字串長度 match 方法 從起始位置開始查詢,一次匹配 re.match pattern,string,flags 0 result re.ma...