re模塊

1、re.match函數(shù)

原型:match(pattern, string, flags=0)

參數(shù):patter: 匹配的正則表達(dá)式

????????????string: 要匹配的字符串

????????????flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,值如下:

????????????????????re.I? ? 忽略大小寫

????????????????????re.L? ? 做本地戶識別

????????????????????re.M? ? 多行匹配,影響^和$

????????????????????re.S? ? 是.匹配包括換行符在內(nèi)的所有字符

????????????????????re.U? ? 根據(jù)Unicode字符集解析字符,影響\w? \W? \b? \B

????????????????????re.X? ? 使我們以更靈活的格式理解正則表達(dá)式

功能:嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,返回None。掃描整個字符串,返回從起始位置成功的匹配

2、re.search函數(shù)

原型:search(pattern, string, flags=0)

參數(shù):patter: 匹配的正則表達(dá)式

????????????string: 要匹配的字符串

????????????flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式

功能:掃描整個字符串,并返回第一個成功的匹配

3、re.findall函數(shù)

原型:findall(pattern, string, flags=0)

參數(shù):patter: 匹配的正則表達(dá)式

????????????string: 要匹配的字符串

????????????flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式

功能:掃描整個字符串,并返回結(jié)果列表


4、re.split()字符串切割

str1 ="This? ? ? ? is? ? a? ?test"

print(re.split(r" +", str1))

5、re.finditer函數(shù)

原型:finditer(pattern, string, flags=0)

參數(shù):patter: 匹配的正則表達(dá)式

????????????string: 要匹配的字符串

????????????flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式

功能:與findall類似,掃描整個字符串,返回的是一個迭代器

6、字符串的替換和修改

re.sub(pattern, repl, string, count=0)

re.subn(pattern, repl, string, count=0)

????????pattern:? 正則表達(dá)式(規(guī)則)

????????repl:? ? 指定的用來替換的字符串

????????string:? 目標(biāo)字符串

????????count:? ? 最多替換次數(shù)

功能:在目標(biāo)字符串中以正則表達(dá)式的規(guī)則匹配字符串,再把他們替換成指定的字符串。可以指定替換的次數(shù),如果不指定,替換所有的匹配字符串

區(qū)別:前者返回一個被替換的字符串,后者返回一個元組,第一個元素被替換的字符串,第二個元素表示被替換的次數(shù)

7、分組

除了簡單的判斷是否匹配之外,正則表達(dá)式還有提取子串的功能。用()表示的就是提取分組

str1 ="010-53247654"

m = re.match(r"(?P\d{3})-(?P\d{8})", str1)

#使用序號獲取對應(yīng)組的信息,group(0)一直代表的原始字符串

print(m.group(0))

print(m.group(1))

print(m.group("first"))

print(m.group(2))

#查看匹配的各組的情況

print(m.groups())


8、編譯:

當(dāng)我們使用正則表達(dá)式時,re模塊會干兩件事

(1)、編譯正則表達(dá)式,如果正則表達(dá)式本身不合法,會報錯

(2)、用編譯后的正則表達(dá)式去匹配對象

compile(pattern, flags=0)

pattern:要編譯的正則表達(dá)式

示例:

pat =r"^1(([3578]\d)|(47))\d{8}$"

print(re.match(pat, "13687872525"))

#編譯成正則對象

re_telephon = re.compile(pat)

print(re_telephon.match("13687872525"))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • re模塊手冊 本模塊提供了和Perl里的正則表達(dá)式類似的功能,不關(guān)是正則表達(dá)式本身還是被搜索的字符串,都可以...
    喜歡吃栗子閱讀 4,212評論 0 13
  • 所有關(guān)于正則表達(dá)式的操作都使用 python 標(biāo)準(zhǔn)庫中的 re 模塊。 Python中的re模塊 re.compi...
    瞎折騰o閱讀 374評論 0 1
  • Python中的正則表達(dá)式(re) import rere.match #從開始位置開始匹配,如果開頭沒有則無re...
    BigJeffWang閱讀 7,618評論 0 99
  • 未經(jīng)允許,不得擅自改動和轉(zhuǎn)載 正則表達(dá)式須知 正則表達(dá)式是用來匹配字符串非常強大的工具,在其他編程語言中同樣有正則...
    雙愚閱讀 1,800評論 0 9
  • 多羨慕南來北往的風(fēng), 春天來了, 沉醉在花瓣的清香, 夏天來了, 流連于綠樹的縫隙。 秋天來了, 與落葉翩翩起舞,...
    尤千花閱讀 357評論 0 0

友情鏈接更多精彩內(nèi)容