python中re.compile()用法详解
生活随笔
收集整理的這篇文章主要介紹了
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()用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux常用命令及解析
- 下一篇: 用什么软件测试mate9的闪存_华为ma