*************************=== re.compile *************************===
re.compile可以把正規表示式編譯成乙個正規表示式物件。可以把那些經常使用的正規表示式編譯成正規表示式物件,這樣可以提高一定的效率
import re
匹配郵箱
key = '[email protected]' # 要匹配的文字
p1 = r'^(<\w[\s\w]+>\s)?(\w+[\w+.]*@\w+.(org|com)$)' # 正則表達規則
regex = re.compile(p1) # 編譯正規表示式
matcher1 = re.match(regex, key, flags=0) # 在文字中搜尋符合正規表示式的部分
print(matcher1.group()) # 列印出來
*************************=== re.match *************************===
re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none
re.match(pattern, string, flags=0)
pattern 匹配的正規表示式
string 要匹配的字串。
flags 標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等
匹配成功re.match方法返回乙個匹配的物件,否則返回none
我們可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式
group(num=0) 匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組
groups() 返回乙個包含所有小組字串的元組,從 1 到 所含的小組號
import re
print(re.match('www', 'www.runoob.com').span())
print(re.match('com','www.runoob.com'))
line = "cats are smarter than dogs"
matchobj = re.match(r'(.*) are (.*?) .*', line, re.m | re.i)
if matchobj:
print(matchobj.group())
print(matchobj.group(1))
print(matchobj.group(2))
else:
print("no match!")
*************************=== re.search *************************===
re.search 掃瞄整個字串並返回第乙個成功的匹配
re.search(pattern, string, flags=0)
pattern 匹配的正規表示式
string 要匹配的字串。
flags 標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等
匹配成功re.search方法返回乙個匹配的物件,否則返回none
我們可以使用group(num) 或 groups() 匹配物件函式來獲取匹配表示式
group(num=0) 匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組
import re
print(re.search('www', 'www.runoob.com').span())
print(re.search('com', 'www.runoob.com').span())
line = "cats are smarter than dogs"
searchobj = re.search( r'(.*) are (.*?) .*', line, re.m|re.i)
if searchobj:
print(searchobj.group())
print(searchobj.group(1))
print(searchobj.group(2))
else:
print("nothing found!!")
注:re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配
*************************=== re.sub *************************===
re.sub用於替換字串中的匹配項
re.sub的函式原型為:re.sub(pattern, repl, string, count),第二個函式是替換後的字串,第四個引數指替換個數。預設為0,表示每個匹配項都替換
re.sub還允許使用函式對匹配項的替換進行複雜的處理
import re
text = "jgood is a handsome boy, he is cool, clever, and so on..."
print(re.sub(r'\s+', '-', text)) # 將字串中的空格 ' ' 替換成 '-'
print(re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0)) # 將字串中的空格' '替換為'[ ]'
*************************=== re.split *************************===
re.split分割字串
import re
text = "jgood is a handsome boy, he is cool, clever, and so on..."
print(re.split(r'\s+', text)) # 將字串按空格分割成乙個單詞列表
*************************=== re.findall *************************===
re.findall可以獲取字串中所有匹配的字串
import re
text = "jgood is a handsome boy, he is cool, clever, and so on..."
print(re.findall(r'\w*oo\w*', text)) # 獲取字串中,包含'oo'的所有單詞
Python 正規表示式 3
coding utf 8 匯入re模組 import re 今天討論邊界問題 黨我們想得到乙個郵箱的時候我們可以用正則很快的判斷,但是如果是乙個錯誤的位址我們怎麼判斷呢,1name 2345 163.com result re.match d s d s w name print result.gr...
正規表示式3
1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫做長度 的符號 包括...
正規表示式3
正規表示式用於字串處理 表單驗證等場合,實用高效。本文收集了一些常用的表示式 str preg replace a 1 2 3 str 其中用了三個子模式 每個圓括號中內容為乙個子模式 第乙個是鏈結開始標籤,第二個是鏈結文字,第三個是 然後第二個引數中 1 2 3就表示這三個部分,要替換成什麼樣子還...