功能:實現python對正規表示式對支援與應用,將想要得到對內容按照正規表示式匹配出來
應用場景:爬蟲指令碼、對使用者輸入內容進行合規檢查(如qq格式檢查)等
功能:匹配物件中所有符合正規表示式的內容,並取出來
返回值:列表,所匹配到對項都會返回到列表中
功能:從開頭開始匹配,任何地方有符合規則的都返回乙個(只返回乙個)import re
content = '13621abc15323def19323'
regex = r'1[3-9]\d'
ret = re.findall(regex,content)
print(ret)
#返回值:['13621', '15323', '19323']
返回值:re自定義型別
search 取分組中的內容 group()import re
content = '13621abc15323def19323'
regex = r'(1[3-9]\d)(\d)'
ret = re.search(regex,content)
print(ret)
#返回值:<_sre.sre_match object; span=(0, 5), match='13621'>
根據序號取
根據組名取import re
content = '13621abc15323'
regex = r'(1[3-9]\d)(\d)(1[3-9]\d)'
ret = re.search(regex,content)
print(ret.group()) # 13621abc15323
print(ret.group(0)) # 13621abc15323
print(ret.group(1)) # 13621
print(ret.group(2)) # abc
print(ret.group(3)) # 15323
分組的引用import re
content = '136abc15323'
regex = r'(?p\d)(?p\d)(?p\d)'
ret = re.search(regex,content)
print(ret.group()) # 136
print(ret.group('num1')) # 1
print(ret.group('num2')) # 3
print(ret.group('num3')) # 6
注:由於?p=num1是引用了num1分組,所以它匹配到的內容必須和num1匹配到到內容一樣
功能:import re
content = '136abc15332'
regex = r'(?p\d)(?p=num1)(?p\d)'
ret = re.search(regex,content)
print(ret.group())
# 332
從開頭匹配,若開頭部分匹配到則匹配成功,否則失敗
匹配使用者輸入的內容是否合法時,都是用match
返回值:
匹配到:re自定義型別
未匹配到:none
功能:預編譯,預先編譯我們寫的規則,方便**中多次引用import re
content = 'supervisorctl'
ret1 = re.match('super',content)
ret2 = re.match('visor',content)
ret3 = re.search('visor',content)
print(ret1) # <_sre.sre_match object; span=(0, 5), match='super'>
print(ret2) # none
print(ret3) # <_sre.sre_match object; span=(5, 10), match='visor'>
功能:返回乙個迭代器,迴圈取出的是re的自定義型別;可通過group取值,能夠節省空間import re
regex = r'\d'
content = 'admin:123456;user:654321'
rule = re.compile(regex)
ret = rule.findall(content)
print(ret)
# 返回結果:['123456', '654321']
功能:根據正則做切割import re
content = 'admin:123456;user:654321;root:987654'
ret = re.finditer(r'\d',content)
print(ret) # for i in ret:
print(i.group()) # 123456 654321 987654
功能:將滿足正則的部分替換成指定的內容(可指定替換個數)import re
regex1 = r'\d'
regex2 = r'\d'
content = 'abc123def456ghi'
ret1 = re.split(regex1,content)
ret2 = re.split(regex2,content)
print(ret1) # ['abc', '', '', 'def', '', '', 'ghi']
print(ret2) # ['abc', 'def', 'ghi']
用法:re.sub(正則,要替換的內容,待替換的字串,要替換的個數)
功能:替換所有滿足正則的部分import re
regex1 = r'\d'
regex2 = r'\d'
content = 'abc123def456ghi'
ret1 = re.sub(regex1,'m',content,1)
ret2 = re.sub(regex2,'h',content,2)
print(ret1) # abcm23def456ghi
print(ret2) # abchdefhghi
用法:re.sub(正則,要替換的內容,待替換的字串)
返回值:元祖(元素1:替換後的結果;元素2:替換的次數)
import re
regex1 = r'\d'
regex2 = r'\d'
content = 'abc123def456ghi'
ret1 = re.subn(regex1,'m',content)
ret2 = re.subn(regex2,'h',content)
print(ret1) # ('abcmmmdefmmmghi', 6)
print(ret2) # ('abchdefhghi', 2)
python內建模組之re模組
在python要想使用正則必須借助於模組,re就是其中之一 查詢字串中所有匹配到的字元,並返回乙個列表,沒有匹配資料則返回乙個空列表 import re re.findall 正規表示式 帶匹配的文字 根據正則匹配除所有符合條件的資料 res re.findall b eva jason jacks...
python模組 re模組
匹配任意字元 匹配指定字元類別 字元開頭 字元結尾 取非字元 重複多次字元 0次或多次 重複多次字元 1次或多次 重複單次字元 左右表示式任意匹配 重複m到n次字元 重複m次字元 d 匹配任何十進位制數,相當於 0 9 d 匹配任何非數字字元,相當於 0 9 s 匹配任何空白字元,相當於 fdss ...
python常用模組之re模組(正則)
python種的re模組常用的5種方法,分別是re.match re.search re.findall re.split re.sub。在介紹五種方法之前,需要介紹一下正則的基礎。表示任意字元,除 n以為 轉義字元 字符集,表示取其中任意乙個字元。比如 abc d 可以匹配到ad bd cd。d ...