日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中re.compile()用法详解

發布時間:2023/12/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中re.compile()用法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????編譯正則表達式模式,返回一個對象。可以把常用的正則表達式編譯成正則表達式對象,方便后續調用及提高效率。

源碼解析:

def compile(pattern, flags=0):"Compile a regular expression pattern, returning a Pattern object."return _compile(pattern, flags)

語法結構:

re.compile(pattern, flags=0)
  • pattern 指定編譯時的表達式字符串
  • flags 編譯標志位,用來修改正則表達式的匹配方式。支持 re.L|re.M 同時匹配

flags 標志位參數:

  • re.I(re.IGNORECASE) :使匹配對大小寫不敏感
  • re.L(re.LOCAL) :做本地化識別(locale-aware)匹配
  • re.M(re.MULTILINE) :多行匹配,影響 ^ 和 $
  • re.S(re.DOTALL) :使 . 匹配包括換行在內的所有字符
  • re.U(re.UNICODE):根據Unicode字符集解析字符。這個標志影響 \w, \W, \b, \B.
  • re.X(re.VERBOSE):該標志通過給予你更靈活的格式以便你將正則表達式寫得更易于理解。

示例代碼1:

import res = 'a,b,,,,c d' a = re.compile('[, ]+') b = a.split(s) print(a) print(b)c = re.compile('[,]+') d = c.split(s) print(d)

運行結果:

示例代碼2:? ?【對比示例代碼1,不使用re.compile()】

import res = 'a,b,,,,c d' # a = re.compile('[, ]+') b = re.split('[, ]+', s) print(b)# c = re.compile('[,]+') d = re.split('[,]+', s) print(d)

運行結果:

示例代碼3:? 【使用re.I:對大小寫不敏感】

import res = 'aBdfbksdBjksdbsk' aa = re.compile('b') bb = aa.split(s) print(bb)s = 'aBdfbksdBjksdbsk' aa = re.compile('b', re.I) bb = aa.split(s) print(bb)

運行結果:

示例代碼4:? 【匹配手機號】

import res1 = 'num:12345678900,name:dgw,phone:19876543210,age:25' s2 = 'num:12345678900,name:dgw,phone:119876543210,age:25'aa = re.compile(r'(?<=\D)1[3456789]\d{9}', re.S) bb = aa.findall(s1) print(bb)cc = re.compile(r'(?<=\D)1[3456789]\d{9}', re.S) dd = cc.findall(s2) print(dd)ee = re.compile(r'1[3456789]\d{9}', re.S) ff = ee.findall(s2) print(ff)gg = re.compile(r'(?<=\d)1[3456789]\d{9}', re.S) hh = gg.findall(s2) print(hh)

運行結果:

總結

以上是生活随笔為你收集整理的python中re.compile()用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。